{"id":22265916,"url":"https://github.com/mulle-cc/mulle-genstrings","last_synced_at":"2025-03-25T14:21:04.691Z","repository":{"id":148908962,"uuid":"579740595","full_name":"mulle-cc/mulle-genstrings","owner":"mulle-cc","description":"🗻 Create Localizable.strings from NSLocalizedString","archived":false,"fork":false,"pushed_at":"2024-12-18T17:06:45.000Z","size":114,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"release","last_synced_at":"2025-01-30T13:12:59.924Z","etag":null,"topics":["foundation","localization","mulle-objc","objective-c"],"latest_commit_sha":null,"homepage":"","language":"CMake","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"bsd-3-clause","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/mulle-cc.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-12-18T18:59:15.000Z","updated_at":"2022-12-18T19:37:49.000Z","dependencies_parsed_at":"2023-07-24T09:33:39.750Z","dependency_job_id":null,"html_url":"https://github.com/mulle-cc/mulle-genstrings","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mulle-cc%2Fmulle-genstrings","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mulle-cc%2Fmulle-genstrings/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mulle-cc%2Fmulle-genstrings/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/mulle-cc%2Fmulle-genstrings/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/mulle-cc","download_url":"https://codeload.github.com/mulle-cc/mulle-genstrings/tar.gz/refs/heads/release","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":245476694,"owners_count":20621699,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["foundation","localization","mulle-objc","objective-c"],"created_at":"2024-12-03T10:17:10.686Z","updated_at":"2025-03-25T14:21:04.664Z","avatar_url":"https://github.com/mulle-cc.png","language":"CMake","funding_links":[],"categories":[],"sub_categories":[],"readme":"# mulle-genstrings\n\n#### 🗻 Create Localizable.strings from NSLocalizedString\n\n\u003e An old project, that may or may not work, but which will be resurrected\n\u003e eventually.\n\nThis is like a version of Apple's \u003cb\u003e\u003ctt\u003egenstrings\u003c/tt\u003e\u003c/b\u003e first dumbed down \nand then put on steroids. With it's added muscle it is able to merge changes \nwith the \u003ctt\u003eLocalizable.strings\u003c/tt\u003e file. \n\nThe dumbing down, means that it only has limited options. It always reads \nUTF8 files and it always writes UTF16 files. Dumbest of all, it can only deal \nwith one keyword \u003ctt\u003eNSLocalizedString\u003c/tt\u003e (or a substitution keyword)\n\n\u003cb\u003e\u003ctt\u003emulle-genstrings\u003c/tt\u003e\u003c/b\u003e tries not to \"fix\" \u003cb\u003e\u003ctt\u003egenstrings\u003c/tt\u003e\u003c/b\u003e \nbehaviour too much, except when the output would be clearly broken.\n\nIn my tests, the files created by \u003cb\u003e\u003ctt\u003emulle-genstrings\u003c/tt\u003e\u003c/b\u003e are identical \nto the files created with \u003cb\u003e\u003ctt\u003egenstrings\u003c/tt\u003e\u003c/b\u003e.\n\n## Usage\n\nAssuming your project is in english and you wrote:\n\n\tNSLocalizedString( @\"foo\", @\"this is foo as a verb\");\n\nYou want to run `mulle-genstrings -o en.lproj *.m`  to generate the english \n\u003ctt\u003eLocalizable.strings\u003c/tt\u003e and `mulle-genstrings -a -m de.lproj -o de.lproj *.m` \nfor other language projects. This will ensure, that old translations will not be \noverwritten and new keys are added.\nYou can additionally also specify `.strings` files as input sources. These will not\nbe scanned for `NSLocalizedString` but parsed as `.strings` files. This makes it\neasy to merge files.\n\n\n### -a option: append only\n\nOnly useful in conjunction with the -m option, this will not overwrite previous values for keys.\n\n### -f option: force output\n\nIf mulle-genstrings doesn't find any localizable strings, no output will be \ngenerated. You can force the generation of an output file with \"-f\".\n\n\n### -m option: specify merge source\n\n**mulle-genstrings** can merge strings files. Here you specify a source, that you \nwant to merge with. Additionally specify \"-a\" if you want to keep the original \nvalues intact.\n\n\n### -s option: change search key\n\nYou can change the term to search for instead of `NSLocalizedString`. Useful if\nyou follow the suggestions from [Localizing library code, the right way ?](//www.mulle-kybernetik.com/weblog/2015/localizing_library_code_the_r.html).\n\n### -t option: translate value\n\nYou can push each localizable strings value through a translate script. The script is specifed with the -t option. Every occurence of {} will be replaced with the value to translate.\nThe script should echo the translated value.\n\nAs an example the \"ms-translate.sh\" script is provided, that uses [Microsofts Translation API](https://msdn.microsoft.com/en-us/library/mt146806.aspx)\nto translate pages. You would call **mulle-genstrings** with `-t \"./mulle-ms-translate.sh de pt {}\"` to create a translated `Localizable.strings` from german to portugese.\n\nIn order for this script to work, you have to register with Microsoft and get the proper secret into `~/.mulle-genstrings-v0/secret`. Currently the MS translation API is free for small loads.\n                                                                               \n                                                                               \n                                                                       \n## Author\n\nCoded by Nat! on 16.10.2014\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmulle-cc%2Fmulle-genstrings","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmulle-cc%2Fmulle-genstrings","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmulle-cc%2Fmulle-genstrings/lists"}