Xcode 9 - Scénario D'Avertissement De Problème De Localisation
je suis actuellement en train de tester Xcode 9 beta 3 au moment de cet écrit.
en regardant le storyboard je reçois une liste d'avertissements indiquant que dans d'autres langues/régions ma contrainte fixe posera un problème.
l'application est assez complexe et de nombreux points de vue sont confrontés à 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? Cela semble stupide mais je ne peux pas supporter de voir toutes mes vues avec le jaune l'icône d'avertissement et compter au sommet (110 Avertissements!)
4 réponses
la source des avertissements indésirables est que Xcode est par défaut d'avoir des storyboards" préparés " pour la localisation. Ils sont " préparés "en les mettant en place en utilisant internationalisation de base .
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. La façon la plus facile que j'ai pu faire cela était de simplement déplacer le storyboard fichier à partir du dossier Base.lproj
jusqu'à un niveau et ajouter de nouveau le fichier au projet. Une fois que j'ai fait ça, les avertissements ont disparu.
Étapes
ce processus devrait fonctionner avec des projets anciens et nouveaux. Testé sur Xcode 9.1 en utilisant un projet créé avec Xcode 9.1
- déplacez le storyboard du
Base.lproj
dossier vers le haut d'un niveau via Finder - Supprimer la référence storyboard de votre projet via Xcode
- Glisser-déposer (ou sinon ajouter de nouveau) le storyboard pour votre projet
- vérifier à l'aide de L'inspecteur de fichier que le storyboard n'a plus de localisation de base
Walkthrough Pictural
Xcode par défaut pour avoir des storyboards "préparés" pour la localisation
déplacez vos fichiers storyboard hors de la Base.dossier lproj pour prévenir les Avertissements
supprimer la référence de fichier
ajouter à nouveau le storyboard
vous verrez le localiser..." bouton quand vous avez réussi
Si vous souhaitez localiser dans l'avenir
tapez juste le " Localisez..."bouton et suivez les instructions de Xcode. En outre, vous aurez effectivement besoin de répondre aux avertissements dont Xcode vous parle. Il y a plusieurs façons de les aborder, je recommande cette question pour commencer.
pour une démonstration vidéo du processus, regardez cet enregistrement d'écran
si votre application n'est pas localisée, vous devez restaurer le paramètre Localize dans votre storyboard. L'un des nôtres a été mis à l'anglais. Décochez la boîte anglaise, ou ce que vous voulez. Le storyboard est dans un dossier avec le code de langue, en pour l'anglais. Si vous décochez cette case, vous la supprimez du répertoire du projet car L'application ne recherche plus le dossier en. Trouvez le storyboard dans le dossier finder, déplacez-le du dossier en, puis ramenez-le dans le projet. Assurer 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 avions 360 avertissements dans un storyboard donc il était agréable de résoudre ce problème!
vous pouvez également supprimer l'avertissement de problème de localisation en intégrant simplement l'étiquette ou le bouton dans une vue transparente. Ensuite, supprimez la contrainte de largeur fixe de l'étiquette ou du bouton et réglez-la à la vue du conteneur à la place.
en utilisant une vue de conteneur, vous pouvez réduire au silence l'avertissement et encore être en mesure de localiser le storyboard. 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 que la largeur fixe. est assez grand il ne devrait pas être un problème mais Xcode ne le sait pas, c'est pourquoi vous obtenez l'avertissement; -)
une solution facile: désactiver le Respect de la Direction de la langue pour chaque contrainte problématique.