J'ai localisé une partie de mon application en créant un storyboard base.lproj et 3 fichiers de chaîne pour cela. C'était il y a un mois et après cela, 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 fichiers de chaîne joints au story-board ou je dois ajouter de nouvelles traductions de chaînes par programmation en utilisant NSLocalizableString et Localizable.strings?
Réponses:
Il y a deux options:
Option 1
Xcode peut «recharger» le fichier en le convertissant en un type de fichier [Story Builder Cocoa Touch Storyboard] ou un type de fichier [Localizable Strings] .
Option 2
Utilisez ibtool pour extraire les chaînes de votre storyboard.
Ouvrez l'application Terminal
Localisez votre répertoire Base.lproj
Utilisez cette ligne pour extraire les chaînes:
ibtool MainStoryboard.storyboard --generate-strings-file file_name.strings
Une fois qu'ibtool a extrait les chaînes dans file_name.strings, vous pouvez les copier et les coller dans votre fichier .strings d'origine
Visitez pour plus d'informations: https://conac.cc/business/columns/localization_guide_ios
la source
Découvrez BartyCrouch , il résout parfaitement votre problème. Il est également open source , activement entretenu et peut être facilement installé et intégré dans votre projet.
Installez BartyCrouch via Homebrew :
Sinon, installez-le via Mint :
Mettez à jour progressivement vos fichiers Storyboards / XIBs Strings:
Cela fera exactement ce que vous cherchiez.
Afin de garder vos fichiers Storyboards / XIBs Strings mis à jour au fil du temps, je recommande fortement d'ajouter un script de build (instructions sur la façon d'ajouter un script de build ici ):
En plus de mettre à jour progressivement vos fichiers Storyboards / XIBs Strings, cela vous assurera également que vos
Localizable.strings
fichiers restent à jour avec les clés nouvellement ajoutées dans le code en utilisantNSLocalizedString
et affichent des avertissements pour les clés en double ou les valeurs vides.Assurez-vous de vérifier BartyCrouch sur GitHub ou cet article détaillé pour plus d'informations.
la source
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. Jetons un coup d'œil à
Object-ID
l'inspecteur d'identité. Il semble comme"nwc-b2-19c"
Sur votre mise à jour de localisation ou ajoutez une traduction. Par exemple :
la source
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 les petites modifications manuelles. (Ne tenez pas compte de cela lorsque vous souhaitez automatiser votre processus.)
Étape 0: configuration de la langue du storyboard
Cette étape n'est effectuée qu'une seule fois.
Maintenant, quand j'ajoute quelque chose au storyboard, je fais ce qui suit
Étape 1: ajouter le fichier de chaînes localisables en anglais
marquez simplement 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 campagne dans les autres fichiers de langue
et les traduire
Étape 3: démarquez l'anglais, supprimez le fichier de chaînes localisables correspondant
le fichier n'était nécessaire que pour obtenir les nouveaux éléments de campagne
C'est un processus simple et rapide, tout se fait dans l'éditeur de storyboard
Éditer:
Ce processus fonctionne très bien avec de petits story-boards. 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 didacticiels.
Bon exemple: référence Storyboard dans Xcode, où devrions-nous l'utiliser?
Ainsi, chaque petit storyboard n'a que quelques chaînes à localiser.
la source
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.
la source
Je pense que la meilleure façon est d'utiliser les localisations d'exportation / importation intégrées:
PS Si vous ne souhaitez pas modifier dans XLIFF Editor et que vous avez ignoré l'étape 3, XCode ne peut pas enregistrer de nouvelles chaînes. Dans ce cas, ouvrez .xliff dans XLIFF Editor, ré-enregistrez sans modifications et importez un nouveau fichier.
la source
/* Class = "UILabel"; text = "a basic text"; ObjectID = "HFW-aN-MTb"; */
, mais la nouvelle étiquette n'est PAS créée dans le fichier Main.strings. J'ai ensuite édité le fichier .xliff pour ajouter une traduction pour la nouvelle étiquette. Je l'ai importé à nouveau. La nouvelle étiquette est maintenant insérée dans le fichier Main.strings.Lorsque vous cliquez dans votre storyboard, Main.storyboard par exemple ... Sur le côté droit, vous pouvez voir le menu de localisation (voir l'image ci-jointe). Si vous décochez et revérifiez une langue, le fichier sera à nouveau généré. Donc, je copie généralement 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 façon dont j'utilise pour mettre à jour le dictionnaire.
la source
J'ai un énorme storyboard avec beaucoup de cordes là-bas. Deux langues basent l'anglais et un autre arabe. La tâche consistait à ajouter des champs et des étiquettes au storyboard et à ajouter leur localisation sans aucun script ni NSLocalizableStrings.
Pour moi, aidé ensuite:
Premièrement : assurez-vous que vous disposez de git pour éviter des changements inattendus.
Editor
->Export For Localization...
. Enregistrez l' ar.xliff fichier quelque part.la source
Il existe
une application,un outil en ligne de commande d'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).la source
appleglot
outil fonctionne avec les ensembles d'applications finaux. Il s'agit d'une approche complètement différente pour les applications de traduction.Voici un script pour extraire des chaînes de storyboards et xibs, et les fusionner avec les 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 à une phase de génération cible dans les paramètres de votre projet.
Ou vous pouvez exécuter le script sur Terminal manuellement lorsque vous le souhaitez.
Le script s'exécute
ibtool
comme Tha Leang a répondu. Il s'exécute égalementgenstrings
pour extraire et fusionner les chaînes marquées d'unNSLocalizedString
dans votre code source. Le script est basé sur un script de cet article , qui fusionne les chaînes après l'exécutiongenstrings
.la source
L'approche la plus simple et la moins risquée consiste à copier simplement 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 à partir du storyboard pour le composant:
2: Ajoutez une nouvelle clé dans un fichier localisé comme ci-dessous:
Remarque: Cette approche est très moins risquée si vous souhaitez mettre à jour seulement quelques composants, sinon vous pouvez recréer un fichier localisé pour le storyboard.
la source
Xlifftool est disponible en tant qu'application Mac et fonctionne bien. Il montre toutes les chaînes et objets traduisibles de info.plist, les chaînes localisables et le storyboard.
Téléchargez-le ici pour le mac: https://itunes.apple.com/lv/app/xlifftool/id1074282695?mt=12
Étape 1: dans Xcode, sélectionnez votre dossier de projet dans le navigateur de projet. Sélectionnez ensuite Editeur / Exporter pour la localisation ...
Vos chaînes traduisibles seront incluses dans un fichier xliff sous la langue que vous avez sélectionnée pour la localisation dans Xcode.
Étape 2: Ouvrez ce fichier avec xlifftool et traduisez ou mettez à jour vos traductions qui ont été faites précédemment.
Étape 3: Ensuite, téléchargez à nouveau dans votre projet avec l'éditeur / Importer les localisations ...
la source
Ceci est mon moyen facile de mettre à jour le nouveau texte du storyboard ou xib vers la 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 passez votre chaîne de langue de "Chaîne de localisation" à "Storyboard de générateur d'interface"
3- Remettez-le en place :)
Terminé.
la source
Option 1
Xcode peut «recharger» le fichier en le convertissant en un
[Interface Builder Cocoa Touch Storyboard]
type de fichier ou un[Localizable Strings]
type de fichier.Sélectionnez votre fichier de storyboard de base dans le Navigateur du projet Recherchez la section Localisation dans l' inspecteur de fichiers . Si votre fichier est actuellement un
[Localizable Strings]
, remplacez-le par[Interface Builder Cocoa Touch Storyboard]
ou vice versa.Xcode aurait dû convertir votre storyboard dans la version actuelle, tout en préservant vos anciens efforts de localisation. Ici, vous pouvez rétablir le type de fichier d'origine si vous le souhaitez.
Option 2
Utilisez
ibtool
pour extraire les chaînes de votre storyboard.Ouvrez l'application Terminal
Recherchez votre
Base.lproj
répertoireUtilisez cette ligne pour extraire les chaînes:
Une fois qu'ibtool a extrait les chaînes dans
file_name.strings
, vous pouvez les copier et les coller dans votre.strings
fichier d' origine .la source