Studio de Francfort pour présences numériques multilingues +49 69 95209894 [email protected] Lun–Ven 9h–17h Espace client →
FrançaisFR

Devise

Les montants en devises étrangères sont des valeurs indicatives non contraignantes ; la facturation s'effectue en euros.

Guide pratique

Guide de localisation d'applications et de logiciels (i18n)

La localisation d'applications et de logiciels nécessite une séparation réfléchie du code et des textes. Ce guide aborde des aspects techniques tels que les espaces réservés, les règles de pluriel, les longueurs de texte, les clés de chaîne, le contexte pour les traducteurs et la prise en charge RTL. Il aide les développeurs à créer des applications internationales de manière efficace et cohérente, sans aborder de sujets juridiques ou financiers.

i18n
Abréviation de l'internationalisation
RTL
Support droite-à-gauche
ICU
Composants internationaux pour Unicode
Diagramme illustrant la séparation du code et des ressources linguistiques

1. Séparation du code et des textes

La condition préalable fondamentale pour toute localisation est la stricte séparation entre le code du programme et les contenus textuels. Tous les textes à afficher doivent être stockés dans des fichiers de ressources externes (par ex. Properties, JSON, YAML), et non codés en dur dans le code source. Ainsi, les traducteurs peuvent travailler sans modifier le code. Utilisez des clés de chaîne uniques comme référence dans le code, pointant vers les traductions correspondantes. Cette séparation facilite également la maintenance et permet d'ajouter ultérieurement de nouvelles langues sans modifier le code. Veillez à ce que les libellés d'interface, les messages d'erreur et les infobulles soient également inclus dans ces fichiers.

2. Espaces réservés et variables

Les textes contiennent souvent des contenus dynamiques comme des nombres, des noms ou des dates. Ceux-ci doivent être insérés via des espaces réservés, par ex. avec le formatage printf (%s, %d) ou des approches plus modernes comme les accolades {0}. Il est important que les traducteurs connaissent l'ordre et la signification des espaces réservés. Utilisez des espaces réservés nommés (par ex. « {username} ») pour fournir du contexte. Dans les langues avec une structure de phrase différente, l'ordre des espaces réservés peut varier. Proposez donc la possibilité d'ajuster l'ordre dans la traduction. Testez toutes les variantes pour éviter des sorties erronées ou incomplètes.

Exemple de paramètres dans les chaînes traduisibles

3. Règles de pluriel et formation du pluriel

En allemand, il n'existe que le singulier et le pluriel, mais de nombreuses langues ont des règles de pluralisation plus complexes (par exemple, l'arabe avec six catégories). Utilisez des bibliothèques comme ICU MessageFormat, qui traitent les règles de pluriel par langue. Définissez dans vos ressources des clés séparées pour les différentes formes plurielles (one, other). Le code choisit alors automatiquement la forme appropriée en fonction du nombre. Exemple : « {count} {count, plural, one {pomme} other {pommes}} ». Testez chaque langue avec plusieurs valeurs numériques pour vous assurer que la forme plurielle correcte s'affiche. Évitez les conditions if fixes – cela entraîne des erreurs.

4. Longueur du texte et marges de mise en page

Les traductions sont souvent plus longues ou plus courtes que le texte original. Cela peut notamment perturber la mise en page des boutons, menus et étiquettes. Prévoyez donc suffisamment d'espace pour les extensions de texte – une bonne règle est 30 % d'espace supplémentaire pour les langues occidentales, plus pour les langues asiatiques. Utilisez des mises en page dynamiques qui s'adaptent à la longueur du texte (par exemple, Auto Layout sous iOS ou Flexbox sur le Web). Évitez les largeurs fixes. Permettez aux éléments d'interface de gérer le retour à la ligne si nécessaire. Testez l'interface avec les traductions les plus longues attendues pour éviter les chevauchements ou les coupures.

5. Clés de chaîne, contexte pour les traducteurs et RTL

Des clés de chaîne uniques sont le pilier de la localisation. Utilisez des noms explicites (par exemple, « login.button.title ») et documentez leur usage. Fournissez du contexte aux traducteurs : captures d'écran, longueur maximale de caractères, contraintes (par exemple, « pas plus de 20 caractères »). Pour les langues RTL comme l'arabe ou l'hébreu, l'interface utilisateur doit être inversée. Utilisez des attributs de mise en page qui prennent en charge automatiquement le RTL (par exemple, start/end au lieu de left/right). Testez l'ensemble de la navigation dans des conditions RTL. Pensez également aux icônes et aux graphiques – ils peuvent être interprétés différemment selon la culture.

Checklist pour l'entrée sur le marché

  • Utiliser des fichiers de ressources externes pour les textes
  • Espaces réservés avec variables nommées et ordre personnalisable
  • Implémenter les règles de pluriel avec ICU MessageFormat
  • Mise en page avec au moins 30 % de marge pour les extensions de texte
  • Clés de chaînes explicites avec documentation contextuelle
  • Prise en charge RTL via des attributs de mise en page comme start/end
Grille de mise en page avec différentes longueurs de texte et marges intérieures

Questions fréquentes

Pourquoi la séparation du code et des textes est-elle importante ?

Elle permet des traductions sans modification du code, simplifie la maintenance et autorise l'ajout de nouvelles langues sans avoir à recompiler le logiciel.

Comment gérer les formes plurielles dans différentes langues ?

Utilisez des bibliothèques comme ICU MessageFormat, qui sélectionnent la forme plurielle correcte pour chaque langue. Définissez dans les ressources des clés pour chaque catégorie de pluriel (par ex., one, other).

Que faut-il particulièrement prendre en compte pour les langues RTL ?

L'interface utilisateur doit être reflétée : utilisez des attributs de mise en page logiques (start/end) au lieu de directions absolues. Testez la navigation et les retraits de texte dans des conditions RTL.

Prêt pour ce marché ?

Nous localisons votre site web sur les plans linguistique, technique et culturel – avec une vérification par des natifs et un prix fixe. Demandez un devis sans engagement.

Demander une offre sans engagement

GmbH allemandeTribunal de Francfort-sur-le-Main · HRB 111727
Enregistré D-U-N-S®315030052
Traitement conforme au RGPDHébergement en Allemagne
Prix fixes avec garantie écrite de livraison