web-dev-qa-db-fra.com

Internationalisation et fonctions qui l'utilisent

Je construis un nouveau design dans WP et c'est donc techniquement un thème. Cependant, ce n'est qu'un design pour un site et ne sera pas un thème que tout le monde peut utiliser. Par conséquent, je ne veux pas dérange avec l'internationalisation.

J'ai remarqué que WP utilise l'internationalisation dans de nombreuses fonctions en passant dans la variable textdomain via des fonctions telles que ..

_e( 'Featured', 'twentyeleven' );
esc_attr__( 'Permalink to %s', 'twentyeleven' )

Comment m'a-t-on dit qu'il est une mauvaise idée de supprimer textdomain car cela pourrait donner des résultats bizarres, mais que faire si je ne me soucie pas de l'internationalisation?

1
Brett

Ce n'est qu'un design pour un site et ne sera pas un thème que tout le monde peut utiliser. Par conséquent, je ne veux pas m'embêter avec l'internationalisation.

Si vous n'utilisez que le thème, l'internationalisation n'est pas une grosse affaire. À moins, bien sûr, que vous souhaitiez utiliser une version linguistique différente de votre thème à l'avenir.

Cependant, c'est une bonne idée de vous habituer à internationaliser votre travail. Ainsi, si vous changez d’avis sur le thème (c’est-à-dire que vous décidez de le publier plus tard), vous avez déjà terminé.

Le plus souvent, il suffit de remplacer quelques lignes de code:

echo 'Some string';

Devient:

_e( 'Some string', 'your-theme-textdomain' );

Et:

return 'Some string';

Devient:

__( 'Some string', 'your-theme-textdomain' );

Comment on m'a dit que c'est une mauvaise idée de supprimer le domaine text, car il pourrait en résulter des résultats étranges.

Si vous omettez le domaine textuel de __() ou _e(), WordPress supposera que vous utilisez le domaine textname par défaut fourni avec core. Et oui, des résultats étranges vont se produire, mais ils ne sont pas si mauvais.

Par exemple, WordPress en interne peut traduire "Post" et "Ajouter un nouveau" mais pas "Mon thème super cool". Lorsque votre thème est traduit, les endroits où vous avez passé "Post" et "Ajouter un nouveau" sans textdomain seront traduits, mais pas "Mon super thème".

Que dois-je faire si je ne me soucie pas de l'internationalisation?

Si vous ne vous souciez pas du tout de l'internationalisation, n'utilisez tout simplement pas __() ou _e() et vous n'aurez pas à vous soucier des textdomains.

1
EAMann

Si vous ne le distribuez pas, vous n'avez pas à vous soucier de l'internationaliser à moins que le client ne souhaite le rendre traduisible.

Dans ce cas, vous n'avez pas besoin d'utiliser _e() ou __() ni d'autres fonctions similaires. Et dans ce cas, textdomain ne fait aucune différence.

Des thèmes comme vingt et même sont distribués à des millions de personnes. Traduire ceux-ci est un peu plus important.

1
Otto