Separate parts of phpList are translated independently:
The strings are translated on the translation website. This site runs Weblate to provide a mechanism to allow translation of phpList by members of the phpList community.
How does this work:
Everyone can add suggestions on the translation site. Only selected administrators are allowed to approve the translations. If you are interested to become a moderator for your language, let the team know on the Translation Channel.
In order to help out translating, you need to do the following:
The translation system has two modes for translations. One is to Suggest
translations and the other one is to Save
translations. Anyone (even when not logged in) can send suggestions, but only approved accounts can submit the translations.
Once you have made a few changes in the translations, you can go to the phpList Demo system and choose "Update translations" from the menu, under “System” to see the changes.
You can also try to run phpList on your local system
If you include English as a language that you are interested in, you will see the actual texts that are used in the English language. This can at times be different from the “original word”. For example, initially (20 years ago) phpList used “message” a lot but the terminology was changed to be “Campaign” instead, using the language system.
Also, as explained below, there are “system tags” that need translating, and that may be slightly obscure in the original text.
For example
pagetitlehover:about
which in the English version of the translation is
pagetitlehover:More information about the phpList application
So, in this case, you would need to translate the “More information about the phpList application” part, which is why you want to have the English language as a reference.
When a new user account is created their rights level allows them only to suggest a translation on their language but not save it. For each language there are moderators who can approve the suggested translations and save them. To do so, you can visit a users profile and approve any suggested translations or go directly to a certain language and approve the strings that are translated by others. All the above can be performed only by approved accounts with moderator access.
There are a few things that you need to know when you start or edit a translation
It is essential that the translation has the same codes in it. Otherwise the text will disappear completely. So, for example
Processed %d out of %d messages
needs to have at least two times %d in your translation.
pagetitle:
. For examplepagetitle:dbcheck
You do not need to translate the “pagetitle:” bit, just the text after it. So, the example would be “Database check” as a translation.
Note: Weblate only shows the msgid which is pagetitle:dbcheck. Please look for the English string in admin/locale/en/phplist.po which would give you “Verify the DB structure”, and translate that string
pagetitlehover:dbcheck
You do not need to translate the “pagetitlehover:” bit, just the text after it. So, the example would be “Verify that the database structure is correct” as a possible translation.
Note: Weblate only shows the msgid which is pagetitle:dbcheck. Please look for the English string in admin/locale/en/phplist.po which would give you “Verify that the current database structure is correct for the current version of the code”, and translate that string.
user -> Subscriber message -> Campaign email -> Either "email address" or "email message" (depends on the context)
and there may be similar words that require a clear definition. It is up to the language managers to determine this per language. Language specific rules for the translation are collected in the Notes on Translations.
Adding a new language to phpList requires adding it to both phpList and the phpList application separately. Follow these steps:
Public-facing pages such as subscribe pages, which do not require admin authentication to access, use a separate translation system. The strings are stored in .inc files in the following Git repository: https://github.com/phpList/phplist-lan-texts. These are a dependency of the lan-help repository. The phplist-lan-texts needs to be cloned into the texts
directory within the /lists
directory.
Contextual help text is stored in a Git repository and not handled by Weblate: https://github.com/phpList/phplist-lan-help
The files on this repo are used by the pop-up help buttons. When a new button is added the corresponding file should be added on this repo. Each button should have the parameter “topic” and the value must be equal to the name of the file that will popup when you click that button. Also the name of the file must be all lowercase.
To use contextual help text in a local development copy phpList, clone or download the above repository into the following directory of your phpList installation:
public_html/lists/admin/help
Also make sure to have https://github.com/phpList/phplist-lan-texts cloned on your local installation, if not then there will be a dependency problem.
Do not commit this folder to the phpList 3 repository (it should be ignored by git automatically thanks to .gitignore).
Similar to help texts, these are stored in a dedicated repository, and should be checked out into the following folder: https://github.com/phpList/phplist-lan-info
public_html/lists/admin/info
Do not commit this folder to the phpList 3 repository (it should be ignored by git automatically thanks to .gitignore).
To translate pages of this wiki, register an account and message the Translators Mailing list requesting to be made a moderator for your language. You can then add translations in your language directly.
Due to the software which created it being no longer maintained, the phpList manual is currently not translatable. If you'd like to help fix that, please contact us.
Notes on Translations Language specific rules for the translation