J'ai localisé une partie de mon application en créant un storyboard base.lproj et en 3 fichiers de chaîne. Il y a un mois, j'ai ajouté un nouveau contrôleur de vue à l'application, mais les boutons et les étiquettes de ce contrôleur n'apparaissent pas dans les fichiers de chaîne.
Est-il possible de mettre à jour ces 3 chaînes de caractères attachées au storyboard ou dois-je ajouter de nouvelles traductions de chaînes par programmation à l'aide de NSLocalizableString et Localizable.strings?
Il y a deux options:
Xcode peut "recharger" le fichier en le convertissant en un type de fichier [Interface Builder Cocoa Touch Storyboard] ou en un fichier [Type de fichier localisable] .
Utilisez ibtool pour extraire les chaînes de votre story-board.
Utilisez cette ligne pour extraire les chaînes:
ibtool MainStoryboard.storyboard --generate-strings-file file_name.strings
Une fois que ibtool a extrait les chaînes dans nom_fichier.strings, vous pouvez les copier et les coller dans votre fichier .strings d'origine.
Visitez pour plus d'informations: https://conyac.cc/business/columns/localization_guide_ios
Découvrez BartyCrouch, cela résoudra parfaitement votre problème. En outre, il est open source , activement maintenu et peut être facilement installé et intégré dans votre projet.
Installez BartyCrouch via Homebrew :
brew install bartycrouch
Vous pouvez également l'installer via Mint :
mint install Flinesoft/BartyCrouch
Mettez à jour de manière incrémentielle vos fichiers Storyboards/XIBs Strings:
$ bartycrouch update
Cela fera exactement ce que vous cherchiez.
Afin de garder vos fichiers de Storyboards/XIBs Strings mis à jour au fil du temps I Il est vivement recommandé d’ajouter un script de construction (instructions sur l’ajout d’un script de construction ici ):
if which bartycrouch > /dev/null; then
bartycrouch update -x
bartycrouch lint -x
else
echo "warning: BartyCrouch not installed, download it from https://github.com/Flinesoft/BartyCrouch"
fi
En plus de la mise à jour incrémentielle de vos fichiers Storyboards/XIBs Strings, cela permettra également de vous assurer que vos fichiers Localizable.strings
restent à jour avec les clés récemment ajoutées dans le code en utilisant NSLocalizedString
et affiche des avertissements pour les clés dupliquées ou les valeurs vides.
Assurez-vous de vérifier BartyCrouch sur GitHub ou cet article détaillé pour plus d'informations.
Vous pouvez ajouter manuellement une clé dans votre fichier de localisation. Vous pouvez trouver l'objet clé en le sélectionnant dans l'éditeur de storyboard. Regardons Object-ID
dans l'inspecteur d'identité. Il ressemble à "nwc-b2-19c"
Sur votre mise à jour de localisation ou ajouter une traduction. Par exemple :
"nwc-b2-19c.title" = "Translated title";
Celui-ci n'est pas pour tout le monde, mais il ne nécessite aucun outil supplémentaire dans le terminal et il est facile pour de petites modifications manuelles. (N'envisagez pas cela lorsque vous souhaitez automatiser votre processus.)
Étape 0: Configuration de la langue du scénarimage
Cette étape n'est faite qu'une fois.
Maintenant, quand j'ajoute quelque chose au storyboard, je fais ce qui suit
Étape 1: ajoutez le fichier de chaînes localisables anglais
il suffit de marquer l'élément de campagne en anglais.
Cela crée un tout nouveau fichier de chaînes localisables en anglais avec toutes les lignes.
Étape 2: copiez les nouveaux éléments de ligne dans les autres fichiers de langue
et les traduire
Étape 3: désélectionnez l'anglais, supprimez le fichier de chaînes localisable correspondant
le fichier n'était nécessaire que pour obtenir les nouveaux éléments de campagne
C'est un processus facile et rapide, tout est fait dans l'éditeur de storyboard
Modifier:
Ce processus fonctionne très bien avec les petits scénarimages. Par exemple, j'ai un projet basé sur des onglets et j'ai un storyboard pour chaque onglet.
Recherchez "référence du storyboard" pour trouver des tutoriels.
Bon exemple: référence du Storyboard dans Xcode, où devrions-nous l’utiliser?
Ainsi, chaque petit storyboard n'a que quelques chaînes à localiser.
Enfin, ma solution était (rudimentaire mais efficace) de copier les traductions précédentes et de les coller dans un nouveau fichier créé en décochant et en cochant la case Langue de localisation.
Cela serait utile dans certains cas, comme le mien, lorsque vous ne devez modifier qu'un ou deux textes.
Je pense que le meilleur moyen consiste à utiliser les localisations d'exportation/importation intégrées:
P.S. Si vous ne souhaitez pas modifier dans XLIFF Editor et avez ignoré l'étape 3, XCode peut ne pas enregistrer de nouvelles chaînes. Dans ce cas, ouvrez .xliff dans XLIFF Editor, enregistrez à nouveau sans modifications et importez un nouveau fichier.
Lorsque vous cliquez dans votre scénario, par exemple Main.storyboard ... Sur le côté droit, vous pouvez voir le menu de localisation (voir l’image attachée). Si vous décochez et cochez à nouveau une longueur, le fichier sera généré à nouveau. Donc, d'habitude, je copie le contenu, je génère à nouveau le fichier, puis je colle le contenu que j'ai copié et déjà traduit.
C’est la méthode que j’utilise pour mettre à jour le dictionnaire.
Voici n script pour extraire des chaînes de storyboards et de xibs, et les fusionner avec des traductions existantes.
Pour exécuter le script automatiquement lorsque vous générez un projet, placez-le dans le répertoire racine de votre projet et ajoutez une phase Exécuter le script avec la ligne suivante à un cibler les phases de construction dans les paramètres de votre projet.
./mergegenstrings.py PathToSourceDir
Ou vous pouvez exécuter le script manuellement sur Terminal lorsque vous le souhaitez.
Le script exécute ibtool
à la réponse de Tha Leang. Il exécute également genstrings
pour extraire et fusionner les chaînes identifiées par NSLocalizedString
dans votre code source. Le script est basé sur n script de cet article , qui fusionne les chaînes après l'exécution de genstrings
.
J'ai un énorme story-board avec beaucoup de ficelles. Deux langues de base anglais et un autre arabe. La tâche consistait à ajouter des champs et des étiquettes au storyboard, ainsi qu’à les localiser sans scripts ni NSLocalizableStrings.
Pour moi aidé ensuite:
First : Assurez-vous que vous disposez de git pour empêcher des modifications inattendues.
Editor
-> Export For Localization...
. Enregistrez le fichier ar.xliff quelque part.Il y a une application un outil de ligne de commande de Apple nommé AppleGlot qui prend en charge la localisation incrémentielle. Je ne l'ai pas encore essayé, mais il ressemble exactement à l'outil que vous avez recherché (il y a quelque temps).
L'approche la plus simple et la moins risquée consiste à copier l'ID d'objet à partir du storyboard et à ajouter une nouvelle clé pour la clé dans le fichier localisé, comme dans l'exemple ci-dessous:
1: Copiez l'ID d'objet comme ci-dessous dans le storyboard pour le composant:
2: Ajouter une nouvelle clé dans un fichier localisé comme ci-dessous:
"DjF-dn-0ay.text" = "Borrar datos y restablecer";
Remarque: Cette approche est très moins risquée si vous souhaitez mettre à jour uniquement un composant, sinon vous pouvez recréer un fichier localisé pour le storyboard.
C’est mon moyen facile de mettre à jour un nouveau texte à partir de storyboard ou de xib en chaîne de localisation
1- utilisez ce script (http://tredje.se/dev/trouble/?x=entry:entry150917-204052
2- sélectionnez votre chaîne de localisation que vous souhaitez mettre à jour et remplacez votre chaîne de langue par "Chaîne de localisation" par "storyboard de constructeur d'interface".
3- le remettre en place :)
Fait.