User Language
The language English (with the locale en-US) is provided by the system and all system metadata are delivered with an English description or label. The system provides support for defining other languages and supports multiple languages in a single environment. System users can use the system in their preferred language, as long as a translation into that language has been provided. A user sees the system in the language defined on their user record. If enabled, users can use the Switch Language zone to switch to another supported language real time.
Supporting a New Language
Normally, setting up the system for another language (besides the delivered English language entry) is an implementation issue, not an administrative setup issue. However, there are several online administrative features that are used to set up a new language, and these are described here.
1. Define a language code and indicate that it is enabled. For details on this procedure, see Defining Languages.
2. Install or confirm the existence of a language pack. For an on-premise installation, if the product supplies a language pack with translations for the system metadata descriptions, follow the instructions for downloading the language pack and installing it into your environment.  For a cloud installation, if the product supplies a language pack for a given language, no additional step is needed here. The language pack is already installed.
3. Copy descriptions of all language-enabled tables from an existing translation (e.g., English). The copied values act as placeholders while the strings are translated into the new language. It is necessary to do this as a first step in order to create records using the new language code created in the previous step. Language-based descriptions can be copied using a supplied batch process, F1-LANG. The batch copies all English labels in the system.
The batch process will also update the new language rows with the translated metadata descriptions from the language pack, if installed.
4. Translate additional content. Translatable descriptions and labels for implementation data may be updated / entered in the application. First the user record must be updated to reference the new language. This may be done in one of the following ways:
a. Switch to the new language using the Switch Language zone.
b. If that zone is not available, navigate to the user page, assign the new language code to your User ID, sign out, and sign back in again.
Any online functions that you access will use your new language code. You can change the language code for all users who plan to use/modify the new language.
Note:
The language pack updates all language entries for base owned system data. If your implementation updates base owned labels and descriptions after applying a language pack, they will be overwritten the next time an updated language pack is applied. Note that most user facing labels and messages support defining an Override Label or Override Description. This information is not updated by the base product and should be utilized if your implementation desires a specific label or description.
Managing Multiple Languages
Once a non-English language has been set up, there are several points to note when adding or updating records that include translatable strings.
When a new record is added through the user interface or through a REST service call or any other means that goes through the standard maintenance service, the system automatically generates entries for each supported language and copies the text of the entered description to all the generated languages.
When the translatable string for a record is updated, only the user's language row is updated. The system does not ripple the change to other supported language entries (because it could be overriding a valid translation).
When your system is upgraded to a new version, the new version typically includes new system data. The upgrade only includes the English language rows. Implementers should run the F1-LANG batch program to generate language rows for the your supported languages for this new data. If a new translation pack for your supported language is available at the time of upgrade, then running this process also applies the translated strings. (As mentioned above, for on-premise installations, you need to download and install the language pack before this step). If the language pack is not available at the time of upgrade, then the batch program should be run again when the language pack has been installed.
New translatable objects may also be included in a patch / hot fix. In this situation, the F1-LANG batch program should be run after installing the patch in order to ensure there are language rows for your supported languages. Updated language packs are only provided for full release upgrades and not for hot fixes. So implementations may need to temporarily supply translations for the new strings until you update to the next release with the next updated translation pack.