]> git.mxchange.org Git - friendica.git/blobdiff - doc/translations.md
Display the total emoji activity
[friendica.git] / doc / translations.md
index 9ecd8f6d4978415b612803cd445c8be553067c9c..4c84b67a81358908db9581a189da34a8934d138b 100644 (file)
@@ -7,9 +7,9 @@ Friendica translations
 
 The Friendica translation process is based on `gettext` PO files.
 
-Basic worflow:
-1. `xgettext` is used to collect translation strings across the project in the master PO file located in `view/lang/C/messages.po`.
-2. This file makes translations strings available at [the Transifex Friendica page](https://www.transifex.com/Friendica/friendica/dashboard/).
+Basic workflow:
+1. `xgettext` is used to collect translation strings across the project in the authoritative PO file located in `view/lang/C/messages.po`.
+2. This file makes translations strings available at [the Transifex Friendica page](https://app.transifex.com/Friendica/friendica/dashboard/).
 3. The translation itself is done at Transifex by volunteers.
 4. The resulting PO files by languages are manually updated in `view/lang/<language>/messages.po`.
 5. PO files are converted to PHP arrays in `view/lang/<language>/strings.php` that are ultimately used by Friendica to display the translations.
@@ -17,13 +17,23 @@ Basic worflow:
 ## Translate Friendica in your favorite language
 
 Thank you for your interest in improving Friendica's translation!
-Please register a free Transifex account and ask over at [the Transifex Friendica page](https://www.transifex.com/Friendica/friendica/dashboard/) to join the translation team for your favorite language.
+Please register a free Transifex account and ask over at [the Transifex Friendica page](https://app.transifex.com/Friendica/friendica/dashboard/) to join the translation team for your favorite language.
 
 As a rule of thumb, we add support for a language in Friendica when at least 50% of the strings have been translated to avoid a scattered experience.
 For addons, we add support for a language when if we already support the language in Friendica.
 
 ## Add new translation strings
 
+### Supported gettext version
+
+We currently support the gettext version 0.19.8.1 and actively check new translation strings with this version.
+
+If you don't use this version, it's possible that our checks fail (f.e. because of tiny differences at linebreaks).
+In case you do have a Docker environment, you can easily update the translations with the following command:
+```shell
+docker run --rm -v $PWD:/data -w /data friendicaci/transifex bin/run_xgettext.sh
+```
+
 ### Core
 
 Once you have added new translation strings in your code changes, please run `bin/run_xgettext.sh` from the base Friendica directory and commit the updated `view/lang/C/messages.po` to your branch.
@@ -56,11 +66,11 @@ To use it, first create a configuration file with your credentials.
 On Linux this file should be placed into your home directory `~/.transifexrc`.
 The content of the file should be something like the following:
 
-    [https://www.transifex.com]
+    [https://app.transifex.com]
     username = user
     token =
     password = p@ssw0rd
-    hostname = https://www.transifex.com
+    hostname = https://app.transifex.com
 
 Since Friendica version 3.5.1 we ship configuration files for the Transifex client in the core repository and the addon repository in `.tx/config`.
 To update the PO files after you have translated strings of e.g. Esperanto on the Transifex website you can use `tx` to download the updated PO file in the right location.
@@ -73,14 +83,14 @@ Then run `bin/console po2php view/lang/<language>/messages.po` to update the rel
 
 ### Basic usage
 
-- `Friendica\Core\L10n::t('Label')` => `Label`
-- `Friendica\Core\L10n::t('Label %s', 'test')` => `Label test`
+- `Friendica\DI::l10n()->t('Label')` => `Label`
+- `Friendica\DI::l10n()->t('Label %s', 'test')` => `Label test`
 
 ### Plural
 
-- `Friendica\Core\L10n::tt('Label', 'Labels', 1)` => `Label`
-- `Friendica\Core\L10n::tt('Label', 'Labels', 3)` => `Labels`
-- `Friendica\Core\L10n::tt('%d Label', '%d Labels', 1)` => `1 Label`
-- `Friendica\Core\L10n::tt('%d Label', '%d Labels', 3)` => `3 Labels`
-- `Friendica\Core\L10n::tt('%d Label', 'Labels %2%s %3%s', 1, 'test', 'test2')` => `Label test test2`
-- `Friendica\Core\L10n::tt('%d Label', 'Labels %2%s %3%s', 3, 'test', 'test2')` => `Labels test test2`
+- `Friendica\DI::l10n()->tt('Label', 'Labels', 1)` => `Label`
+- `Friendica\DI::l10n()->tt('Label', 'Labels', 3)` => `Labels`
+- `Friendica\DI::l10n()->tt('%d Label', '%d Labels', 1)` => `1 Label`
+- `Friendica\DI::l10n()->tt('%d Label', '%d Labels', 3)` => `3 Labels`
+- `Friendica\DI::l10n()->tt('%d Label', 'Labels %2%s %3%s', 1, 'test', 'test2')` => `Label test test2`
+- `Friendica\DI::l10n()->tt('%d Label', 'Labels %2%s %3%s', 3, 'test', 'test2')` => `Labels test test2`