diff --git a/Signal/translations/TRANSLATIONS.md b/Signal/translations/TRANSLATIONS.md index 40bdb44ec9..162b3d37a5 100644 --- a/Signal/translations/TRANSLATIONS.md +++ b/Signal/translations/TRANSLATIONS.md @@ -1,5 +1,59 @@ +# + # Translations +## For Developers + +### Localize User Facing Strings + +Use the NSLocalizedString macros to mark any user facing strings as +localizable. See existing usages of this macro for examples. + +### Extract Source Strings + +To extract the latest translatable strings and comments from our local source +files into our english localization file: + + bin/auto-genstrings + +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 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" + + /* Button label to archive the current conversation */ + ARCHIVE_ACTION="Archive" + +#### Finish + + /* Tab button label which takes you to view all your archived conversations */ + ARCHIVE_HEADER="Arkisto" + + /* Button label to archive the current conversation */ + ARCHIVE_ACTION="Arkistoi" + +Context should also provide a hint as to how much text should be +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? + +## 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, @@ -7,7 +61,7 @@ we pull their latest work into the code base. ## Fetch Translations -Generally you wan to fetch the latest translations whenever releasing. The +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. @@ -24,39 +78,6 @@ 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. -### Writing Good Translatable Strings - -Be sure to add a comment to provide context to the translators. For -example: - - /* Tab button label which takes you to view all your archived conversations */ - ARCHIVE_HEADER="Archive" - - /* 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. - - /* Tab button label which takes you to view all your archived conversations */ - ARCHIVE_HEADER="Arkisto" - - /* Button label to archive the current conversation */ - ARCHIVE_ACTION="Arkistoi" - -Context should also provide a hint as to how much text should be -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 - -To extract the latest translatable strings and comments from our local source files -(Signal-iOS and SignalServiceKit): - - bin/auto-genstrings - ### Upload Strings to be Translated Make new source strings available to our translators by uploading them