Interroger et appliquer des cultures
La culture active dans l'Unreal Engine (l'UE) peut faire référence à l'une des trois choses suivantes :
-
La langue - La langue permet de déterminer les données de localisation à utiliser.
-
Les paramètres régionaux - Les paramètres régionaux permettent de contrôler la manière dont les nombres/dates/heures/etc. sont formatés dans notre bibliothèque d'internationalisation.
-
Une culture de groupe de ressources - Les groupes de ressources permettent de créer un groupe de classes de ressources pouvant être associées à une langue différente de celle du projet principal.
Il est possible de définir tous ces éléments en même temps en modifiant la culture active. Cependant, si votre projet prévoit d'utiliser des groupes de ressources, il est préférable de gérer la langue et les paramètres régionaux (souvent définis de manière identique dans les jeux) ainsi que les groupes de ressources comme des paramètres distincts.
L'UE simplifie cette séparation et fournit également certains utilitaires que vous pouvez utiliser à la fois en C++ et dans les blueprints pour vous aider à gérer les paramètres.
Obtenir la culture active
Les informations sous-jacentes sur la culture active sont stockées dans le singleton FInternationalization, mais UKismetInternationalizationLibrary fournit un ensemble réduit de fonctions wrapper qui permettent d'accéder de manière cohérente aux informations tant depuis C++ que depuis les blueprints.
| Fonction | Description |
|---|---|
| GetCurrentLanguage | Obtenir la langue active sous la forme d'une étiquette d'identification de langues IETF. |
| GetCurrentLocale | Obtenir les paramètres régionaux actifs sous la forme d'une étiquette d'identification de langues IETF. |
| GetCurrentAssetGroupCulture | Obtenir la culture d'un groupe de ressources nommé sous la forme d'une étiquette d'identification de langues IETF. |
Définir la culture active
Les informations sous-jacentes sur la culture active sont stockées dans le singleton FInternationalization, mais UKismetInternationalizationLibrary fournit un ensemble réduit de fonctions wrapper qui permettent de définir les valeurs tant depuis C++ que depuis les blueprints. Elles offrent également la possibilité de conserver les nouveaux paramètres dans le fichier de configuration de l'utilisateur.
| Fonction | Description |
|---|---|
| SetCurrentCulture | Définir la culture active (langue, paramètres régionaux et tous les groupes de ressources) à partir d'une étiquette d'identification de langues IETF. |
| SetCurrentLanguage | Définir la langue active à partir d'une étiquette d'identification de langues IETF. |
| SetCurrentLocale | Définir les paramètres régionaux actifs à partir d'une étiquette d'identification de langues IETF. |
| SetCurrentLanguageAndLocale | Définir la langue active et les paramètres régionaux à partir d'une étiquette d'identification de langues IETF. |
| SetCurrentAssetGroupCulture | Définir la culture d'un groupe de ressources nommé à partir d'une étiquette d'identification de langues IETF. |
| ClearCurrentAssetGroupCulture | Effacer la culture d'un groupe de ressources nommé (pour revenir à l'utilisation de la langue active). |
La culture peut également être modifiée dans les versions non distribuées à l'aide des commandes de la console du moteur.
Exemple :
culture=fr
language=fr
locale=fr
Interroger les langues disponibles
Les informations linguistiques sous-jacentes disponibles sont stockées dans le singleton FTextLocalizationManager, mais UKismetInternationalizationLibrary fournit un ensemble réduit de fonctions wrapper qui permettent d'accéder de manière cohérente aux informations tant depuis C++ que depuis les blueprints.
| Fonction | Description |
|---|---|
| GetNativeCulture | Obtenir la culture native d'une catégorie de localisation sous la forme d'une étiquette d'identification de langues IETF. |
| GetLocalizedCultures | Obtenir la liste des cultures pour lesquelles des données de localisation sont disponibles sous la forme d'étiquettes d'identification de langues IETF. |
| GetSuitableCulture | Obtenir la culture la plus appropriée parmi une liste de cultures disponibles. |
| GetCultureDisplayName | Obtenir le nom d'affichage d'une culture à partir de son étiquette d'identification de langues IETF. |
Remplacer la culture par défaut
L'UE détermine la culture par défaut en interrogeant la couche de plate-forme sous-jacente pour la langue et les paramètres régionaux actifs. Si la langue de la plate-forme n'est pas prise en charge, l'UE revient à la langue native de votre cible de localisation. Dans un projet distribué, ce comportement n'est probablement pas remplacé. Cependant, pendant le développement, ces remplacements peuvent être utiles pour tester d'autres langues.
Les paramètres par défaut de votre projet seront généralement définis dans votre fichier DefaultGame.ini. Cet exemple montre comment définir la culture sur le français.
Exemple :
[Internationalisation]
culture=fr
Cet exemple montre comment définir la langue et les paramètres régionaux sur le français, tout en définissant le groupe de ressources audio sur le japonais.
Exemple :
[Internationalisation]
language=fr
locale=fr
[Internationalization.AssetGroupCultures]
+Audio=ja
Les paramètres peuvent également être remplacés à l'aide d'indicateurs de ligne de commande.
Exemple :
-culture=fr
-language=fr
-locale=fr
Aperçu de la localisation
L'aperçu de la localisation vous permet de prévisualiser les données de localisation de votre projet sans quitter l'éditeur. Il est configuré par le paramètre Preview Game Language (Aperçu de la langue du jeu). Procédez comme suit pour modifier ces paramètres.
-
Dans la barre de menus de l'éditeur, cliquez sur Edit > Editor Preferences (Modifier > Préférences de l'éditeur).
-
Dans la boîte de dialogue Préférences de l'éditeur, sous General (Général), cliquez sur Region and Language (Région et langue).
-
Cliquez sur le menu déroulant à côté de Preview Game Language (Aperçu de la langue du jeu) et sélectionnez la langue dont vous souhaitez voir l'aperçu.
L'aperçu est automatiquement activé lorsque Play in Editor (PIE) est en cours d'exécution, et est également transmis à toutes les instances autonomes lancées dans l'éditeur. Cet aperçu peut également être utilisé dans l'éditeur UMG pour prévisualiser les widgets dans différentes langues. Lorsqu'un aperçu est en cours d'exécution, tous les champs de texte modifiables sont en lecture seule afin d'éviter d'écraser accidentellement les données sources avec des données de traduction.
Les aperçus PIE et UMG ne sont pas toujours des représentations entièrement précises de ce à quoi ressemblera votre projet au moment de l'exécution, car ils chargent uniquement les données de localisation sans affecter les paramètres de langue ou les paramètres régionaux. Si vous souhaitez une représentation précise, exécutez une instance autonome dans l'éditeur (ce qui revient à exécuter l'éditeur avec -game).
Remapper les cultures
Le remappage des cultures permet de mapper un code de culture sur un autre. Il permet de gérer les variations régionales qui ne peuvent pas être gérées par un script ou un code de pays. Les remappages de culture sont stockés dans votre fichier DefaultGame.ini. Il s'agit d'une paire d'étiquettes d'identification de langues IETF séparées par des points-virgules.
Exemple :
[Internationalisation]
+CultureMappings="es-MX;es-419"
Restrictions de culture
Les restrictions de culture offrent un moyen d'activer ou de désactiver certaines cultures, ce que vous pouvez faire en fonction de la configuration de chaque version. Les restrictions de culture peuvent être utiles si vous souhaitez désactiver des langues qui sont nécessaires pour les tests, mais qui ne doivent pas figurer dans la version de distribution de votre projet.
Les restrictions de culture sont généralement enregistrées dans le fichier DefaultGame.ini et sont définies avec une étiquette d'identification de langues IETF. Vous pouvez inclure une liste de configurations de version auxquelles appliquer la restriction (l'absence de configurations de version implique que les restrictions s'appliquent à toutes les configurations de version).
Exemple :
[Internationalisation]
;Activer uniquement le français dans toutes les configurations de version
+EnabledCultures="fr"
[Internationalisation]
;Activer uniquement le français dans les configurations de test et de distribution
+EnabledCultures="fr;Test,Shipping"
[Internationalisation]
;Désactiver l'allemand dans la configuration de la version de distribution
+DisabledCultures="de;Shipping"