31 votes

Xcode 9 - Storyboard d'avertissement de problème de localisation

Je suis actuellement en train de tester Xcode 9 beta 3 au moment d'écrire ces lignes.

Lors de l'affichage de la table de montage séquentiel je reçois une liste de mise en garde indiquant que dans d'autres langues/régions mon fixe contrainte de poser une question.

L'application est assez complexe et de nombreux points de vue sont l'expérience de ces avertissements.

L'avertissement est:

Certain autolayout constraint combinations may result in an appropriate layout in the current development language but will pose issues in other languages and regions.

Je sais que l'application ne sera pas utilisé dans les autres langues de sitôt.

Est-il possible de transformer cet avertissement off? Il semble stupide, mais je ne peux pas supporter de voir tous mes points de vue avec le jaune, l'icône d'avertissement et de compter en haut (110 avertissements!)

localization issue

77voto

allenh Points 4335

La source de l'indésirables mises en garde est que Xcode défaut d'avoir des story-boards "préparé" pour la localisation. Ils sont "préparés" par leur configuration à l'aide de la base de l'internationalisation.

Pour complètement désactiver cet avertissement dans un storyboard, vous devez laisser Xcode savoir que le storyboard ne doit pas être considéré comme localizable. Le moyen le plus facile, j'ai été en mesure de le faire est de simplement déplacer la table de montage séquentiel fichier à partir de l' Base.lproj le dossier d'un niveau et re-ajouter le fichier au projet. Une fois que je l'ai fait, les mises en garde s'en alla.

Étapes

Ce processus devrait travailler avec d'anciens et de nouveaux projets. Testé sur Xcode 9.1 à l'aide d'un projet créé avec Xcode 9.1

  1. Déplacer le storyboard de l' Base.lproj le dossier d'un niveau via le Finder
  2. Supprimer le storyboard de référence de votre projet via Xcode
  3. Le glisser-déposer (ou ré-ajouter) le storyboard de votre projet
  4. Vérifier à l'aide de l'Inspecteur de Fichiers que le storyboard n'est plus a la base de la localisation

     

Soluce Picturale

Xcode défaut d'avoir des story-boards "préparé" pour la localisation

Xcode default storyboard folder structure

     

Déplacez votre storyboard fichiers de la Base.lproj dossier pour empêcher que les mises en garde

Desired folder structure

     

Supprimer le fichier de référence

Delete the file reference

     

Ajouter à nouveau la table de montage séquentiel

Drag and drop the file back into the project enter image description here

     

Vous verrez le "Localiser..." bouton lorsque vous avez réussi

Yay! No more warnings

     

Si vous souhaitez localiser dans l'avenir

Appuyez simplement sur le "Localiser..." bouton et suivez les instructions à partir de Xcode. En outre, vous aurez vraiment besoin de l'adresse de mises en garde que Xcode est à vous raconter. Il existe différentes manières d'y répondre, je vous recommande cette question pour commencer.

Pour une vidéo de démonstration du processus, cette montre d'enregistrement d'écran

4voto

John Points 379

En supposant que votre application n'est pas localisé, vous avez besoin de restaurer le Localiser paramètre dans votre storyboard. L'un des nôtres a été mis à l'anglais. Décochez l'anglais fort, ou que ce soit la vôtre est réglé. Le storyboard est dans un dossier avec le code de langue, en pour l'anglais. En décochant cette case à cocher pour supprimer à partir du répertoire du projet depuis l'Application n'est plus la recherche de la salle de dossier. Trouver le storyboard dans le finder de dossier, déplacer de la salle de dossier, puis faites-la glisser à nouveau dans le projet. Assurez-vous que la Cible de l'Adhésion est cochée. Propre, fermer, ouvrir, quitter de force, etc comme nécessaire et vous devriez être bon d'aller! Nous avons eu 360 avertissements dans un storyboard, donc c'était agréable de recevoir ce résolu!

enter image description here

2voto

boherna Points 371

Vous pouvez également supprimer le Problème de Localisation d'avertissement par la simple intégration de l'étiquette ou le bouton dans une vue transparente. Retirez ensuite la correction de la largeur de la contrainte de l'étiquette ou le bouton et réglez-le conteneur vue à la place.

À l'aide d'un conteneur de vue, vous pouvez la couper l'avertissement et toujours être en mesure de localiser la table de montage séquentiel. Parfois, vous avez besoin d'avoir une étiquette ou un bouton avec une largeur fixe, même si la langue est en passe de changer, et si vous êtes sûr de l'fixer la largeur est assez grand, il ne devrait pas être un problème, mais Xcode ne le savent pas, c'est pourquoi vous obtenez le message d'avertissement ;-)

1voto

phatmann Points 4153

Une solution simple: désactivez Respecter la direction linguistique pour chaque contrainte problématique.

Voir https://stackoverflow.com/a/45764271/201828 .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X