diff --git a/Signal/translations/TRANSLATIONS.md b/Signal/translations/TRANSLATIONS.md index 40bdb44ec..162b3d37a 100644 --- a/Signal/translations/TRANSLATIONS.md +++ b/Signal/translations/TRANSLATIONS.md @@ -1,33 +1,37 @@ +# + # Translations -Translations are solicited on Transifex[https://www.transifex.com/]. We -upload our source language (US English) to Transifex, where our -translators can submit their translations. Before the app is released, -we pull their latest work into the code base. +## For Developers -## Fetch Translations +### Localize User Facing Strings -Generally you wan to fetch the latest translations whenever releasing. The -exception being if you have recently changed lots of existing source strings -that haven't had a chance to be translated. +Use the NSLocalizedString macros to mark any user facing strings as +localizable. See existing usages of this macro for examples. -To fetch the latest translations: +### Extract Source Strings - bin/pull-translations +To extract the latest translatable strings and comments from our local source +files into our english localization file: -This imposes some limits on what localizations we include. For example, -we don't want to include languages until a substantial portion of the -app has been translated. + bin/auto-genstrings -Sometimes you'll pull down a translation which isn't yet tracked by git. -This means that translation recently became sufficiently complete to -include in the project. As well as adding it to git, you need to update -the Xcode project to include the new localization. +At this point you should see your new strings, untranslated in only the English +(en) localization. + +Edit Signal/translations/en.lproj/Localizable.strings to translate your strings. + +Commit these English translations with your work. Do not touch the non-english +localizations. Those are updated as part of our release process by Signal +Staff. ### Writing Good Translatable Strings -Be sure to add a comment to provide context to the translators. For -example: +Be sure to include comments in your translations, and enforce that other +contributors do as well. Why comment? For example, in English these are +the same, but in Finnish the noun/verb are distinct. + +#### English /* Tab button label which takes you to view all your archived conversations */ ARCHIVE_HEADER="Archive" @@ -35,9 +39,7 @@ example: /* Button label to archive the current conversation */ ARCHIVE_ACTION="Archive" -Be sure to include comments in your translations, and enforce that other -contributors do as well. Why comment? For example, in English these are -the same, but in Finnish the noun/verb are distinct. +#### Finish /* Tab button label which takes you to view all your archived conversations */ ARCHIVE_HEADER="Arkisto" @@ -50,12 +52,31 @@ provided. For example, is it an alert title, which can be a few words, a button, which must be *very* short, or an alert message, which can be a little longer? -## Extract Source Strings +## For Maintainers (Signal Staff) + +Translations are solicited on Transifex[https://www.transifex.com/]. We +upload our source language (US English) to Transifex, where our +translators can submit their translations. Before the app is released, +we pull their latest work into the code base. + +## Fetch Translations -To extract the latest translatable strings and comments from our local source files -(Signal-iOS and SignalServiceKit): +Generally you want to fetch the latest translations whenever releasing. The +exception being if you have recently changed lots of existing source strings +that haven't had a chance to be translated. - bin/auto-genstrings +To fetch the latest translations: + + bin/pull-translations + +This imposes some limits on what localizations we include. For example, +we don't want to include languages until a substantial portion of the +app has been translated. + +Sometimes you'll pull down a translation which isn't yet tracked by git. +This means that translation recently became sufficiently complete to +include in the project. As well as adding it to git, you need to update +the Xcode project to include the new localization. ### Upload Strings to be Translated