2009-09-18 3 views

Répondre

9

Cela dépend de la langue, mais fondamentalement, oui, vous pouvez toujours.

printf(_("Hi, my name is %s and I am %s"), name, prof); 

dans c.

echo sprintf(_("Hi, my name is %s and I am %s"), $name, $prof); 

en php.

alert(_('Hi, my name is %s and I am %s') 
    .replace('%s',name).replace('%s',prof)); 

en javascript ou mieux quelque chose comme:

alert(_('Hi, my name is %1 and I am %2') 
    .replace('%1',name).replace('%2',prof)); 

ou tout ce que vous pouvez venir avec un espace réservé. L'implémentation Javascript repose bien entendu sur le fait que le mécanisme de traduction soit fourni au moment du prétraitement ou en tant que fonction de soulignement d'exécution.

et ainsi de suite.

+0

reaaally vieux sujet , mais a dû dire un bug potentiel: "Hola, soja un Francisco llamado alcoolico" ("Bonjour, je suis un Francisco appelé alcoolique"). Il y a plusieurs façons de traduire la phrase, et c'est une preuve d'une bonne traduction mais un mauvais résultat de gettext. –

+0

Je ne sais pas exactement ce que vous essayez de dire. Décidément, gettext peut avoir donné des résultats erronés si utilisé de manière incorrecte. Vous pouvez simplement traduire l'original, vous pouvez traduire l'original sans prêter beaucoup d'attention à la grammaire (cas, sexe, etc.), vous pouvez avoir un original qui devrait être traduit différemment selon le contexte (celui-ci est facile à contourner) . Ce que je ne comprends pas, c'est pourquoi de nombreuses façons de traduire sont une preuve d'une bonne traduction mais un mauvais résultat gettext? –

+0

Lol Je n'ai jamais attendu une réponse ici. Je voulais juste dire qu'une chaîne de texte avec deux paramètres dans un ordre pour une langue pourrait être traduite en une chaîne avec les paramètres dans un ordre différent pour l'autre langue. Alors que le premier est le nom et le second la profession en anglais, il se pourrait que le premier est le métier et le second est le nom de l'espagnol. Sauf le deuxième cas de javascript qui semble fonctionner correctement. –

0

Ceci est un vieux sujet, mais juste parler ...

Dans plusieurs langues, vous pouvez également indiquer quel argument à utiliser, comme celui-ci (en PHP):

$name = 'Agustinus'; 
printf(_("Hi %1$s.\n The owner of this page is: %1$s. Today is %s.", 
    $name, date('d-m-Y')); 
+0

Le '% 1 $ s' (note, ce n'est pas'% $ 1s') peut être supporté par php sur toutes les plateformes, mais l'origine est gnu libc, je crois. Il est à noter, cependant, que si vous utilisez '% 1 $ s' vous ne pouvez pas utiliser'% s' dans la même chaîne et vous n'êtes pas autorisé à avoir des trous dans la numérotation. –

Questions connexes