-
Formats numériques, date et heure
-
Utilisation de la monnaie
-
Utilisation du clavier
-
Collation et tri
-
Symboles, icônes et couleurs
-
Texte et graphiques contenant des références à des objets, actions ou idées qui, dans une culture donnée, peuvent être mal interprétés ou considérés comme insensibles.
- Exigences légales variées
Cette liste n'est qu'un début – la localisation peut également s'appliquer à bien d'autres choses
En quoi cela concerne-t-il le développement d'applications?
Lorsqu'il s'agit de l'interface utilisateur d'une application , ces termes se résument à l’application de chaînes correctes et de divers formats en fonction des paramètres de langue de l’appareil concerné. Cette tâche semble simple et directe, mais son exécution peut s'avérer difficile, notamment dans les cas où des composants d'interface utilisateur tiers sont utilisés.
Nous comprenons cela et, par conséquent, l'interface utilisateur de Telerik pour Xamarin constitue un mécanisme simple à utiliser qui permet de modifier les chaînes prédéfinies dans nos composants. Vous trouverez des exemples de telles chaînes dans plusieurs de nos contrôles, y compris RadDataGrid, Interface utilisateur Radalendar & Scheduling, RadAutoCompleteView, RadNumerInput et plus.
Il est à noter que tous les composants ne profitent pas simplement de ce mécanisme. car il n'y a pas de chaînes prédéfinies dans chacune d'elles. Pour ceux qui ont besoin de chaînes prédéfinies, le TelerikLocalizationManager est utilisé pour résoudre les caractères exacts à afficher. En interne, ces composants fonctionnent avec des clés au lieu de valeurs de chaîne spécifiques. Au moment de l'exécution, le gestionnaire de localisation doit résoudre ces clés en chaînes concrètes.
Qu'est-ce que TelerikLocalizationManager?
Il s'agit d'une classe qui utilise l'une des deux approches disponibles pour mapper les clés prédéfinies de tous les composants de l'interface utilisateur Telerik pour la suite Xamarin avec les chaînes exactes à visualiser.
La première méthode nécessite l'extension du gestionnaire par défaut en remplaçant une seule fonction qui effectue le mappage proprement dit. Il renvoie une chaîne pour une clé donnée (une paire clé-valeur). Voici un exemple:
public
class
CustomTelerikLocalizationManager: TelerikLocalizationManager
{
public
override
string
GetString [
clé)
{
si
(clé ==
"Et"
)
{
retour
"И"
;
}
if
(clé ==
"Ou"
)
{
return
"Или "
;
}
if
(clé ==
"ResetText"
)
{
return
"Изчисти "
;
}
if
(clé ==
"FilterText"
)
{
return
"Филтрираа" "
;
}
if
(clé ==
"FilterUISectionText"
)
{
return
"Филтрирава" по: "
;
}
return
base
.GetString (clé);
}
}
Une fois le mappage terminé, une instance du gestionnaire de localisation personnalisée doit être affectée à la propriété statique TelerikLocalizationManager.Manager avant que l'interface utilisateur ne soit initialisée et restituée. . Dans une application XamarinForms, un bon endroit pour cela est juste avant la fonction InitializeComponent () d'une page.
public
MainPage ()
{
TelerikLocalizationManager.Manager =
new
CustomTelerikLocalizationManager ();
this
.InitializeComponent ();
}
Toutefois, si votre application initialise des ressources à un stade antérieur, vous devez également envisager d'instancier le gestionnaire étendu.
Utilisation de TelerikLocalizationManager pour localiser une application Xamarin.Forms
Après l'application du gestionnaire de localisation personnalisé, les chaînes visualisées changent comme suit:
public
partiel
classe
MainPage: ContentPage
{
public
MainPage ( )
{
ILocalizationManager manager =
null
;
if
(CultureInfo.CurrentUICulture.Name ==
"bg-BG "
)
{
manager =
new
CustomTelerikLocalizationManager ();
}
autre
si [19659017)] (CultureInfo.CurrentUICulture.Name ==
"fr-FR"
)
{
// nouvelle place votre manager français
}
]
else
if
(CultureInfo.CurrentUICulture.Name ==
"de-DE"
)
{
// nouveau votre Gestionnaire allemand
}
...
TelerikLocalizationManager.Manager = gestionnaire;
InitializeComponent ();
... [19659019]
} [19659019]}
Localisation de l'application Xamarin avec des ressources
D'autre part, la deuxième approche disponible pour fournir des paires clé-valeur élimine la nécessité de choisir entre plusieurs gestionnaires. Il utilise les fichiers bien connus .resx . Vous devez simplement en créer un (ou plusieurs), les mettre à jour pour correspondre à une convention et les intégrer à votre application. En raison de la convention, TelerikLocalizationManager sélectionne et lit automatiquement le fichier approprié en fonction des paramètres de langue du périphérique.
À propos de la création de tels fichiers, voici les étapes à suivre pour le faire. Généralement, Visual Studio fournit un modèle d’élément pratique pour les fichiers .resx . Vous pouvez l'utiliser en cliquant avec le bouton droit de la souris sur le projet portable et en sélectionnant Ajouter> Nouvel élément… dans la boîte de dialogue récemment ouverte, accédez à Eléments de Visual C #> Général> Fichier de ressources .
Une fois le fichier de ressources prêt, il est temps de respecter la convention susmentionnée. Deux aspects doivent être couverts.
le nom du fichier. Il devrait être structuré comme ceci [filename]. [culture] .resx . Dans cette démonstration, le fichier est nommé « CustomizedResources.bg.resx ». Si besoin est, traduire l'application en allemand, le fichier contenant les paires clé-valeur allemandes serait nommé « CustomizedResources.de.resx ».
Le deuxième aspect consiste à fournir également un fichier de ressources pour la culture neutre. Ceci est réalisé en créant un .resx vide qui ne spécifie aucune culture dans son nom. Dans cet exemple, il devrait être nommé « CustomizedResources.resx ». Ce fichier n'est pas obligatoire. pour fournir toutes les paires clé-valeur puisque le laisser vide, aucune des chaînes par défaut ne sera remplacée et les contrôles vont visualiser leur représentation par défaut des chaînes.
La dernière étape consiste à fournir un nouveau gestionnaire de ressources au paramètre par défaut TelerikLocalizationManager . Ceci doit être effectué une nouvelle fois avant que les contrôles ne soient visualisés.
espace de noms
LocalizatonGlobalization
{
public
partiel
classe
MainPage: ContentPage
{
public
. MainPage ()
{
string
resourceId =
"LocalizatonGlobalization.CustomizedResources"
;
TelerikLocalizationManager.Manager.ResourceManager =
new
System.Resources.ResourceManager (resourceId,
typeof
(MainPage) .GetTypeInfo (). Assembly);
InitializeComponent ();
}
}
}
Veuillez noter comment la variable resourceId est construite. Il inclut le nom de l'espace de nom qualifié complet et le nom du fichier sans l'extension spécifique à la culture du fichier de ressources. Cela permet au ResourceManager de choisir et d'utiliser le fichier de ressources correct.
Où puis-je trouver les clés utilisées par les composants?
Quelle que soit l'approche choisie, vous aurez besoin de connaître les clés exactes utilisées en interne par les composants. Dans notre référentiel de xamarin-forms-sdk vous trouverez le fichier DefaultResources.resx . Il contient toutes les clés utilisées par tous les composants, ainsi que les valeurs de chaîne par défaut.
Il s'agit essentiellement du type et du volume du fichier de ressources requis pour traduire tous les composants de la suite Telerik UI for Xamarin.
Conclusion
Si vous êtes pressé et recherchez un moyen rapide et facile de traduire votre application, vous trouverez peut-être utile de créer un ResourcesManager personnalisé et un certain . fichiers resx . Toutefois, si vous souhaitez davantage de contrôle sur le processus de traduction, vous aimerez peut-être étendre la valeur par défaut TelerikLocalizationManager et prendre le contrôle en code.
Merci de m'avoir lu et j'espère que la mondialisation et la localisation seront un peu plus claires et utiles pour vos projets.
Source link