Les parameters de ssortingngs.xml sont-ils possibles?

Dans mon application Android, je vais mettre en place mes chaînes avec l’internationalisation. Donc, actuellement, j’ai un problème avec la grammaire et la façon dont les phrases sont construites dans différentes langues.

Par exemple:

“Il y a 5 minutes” – anglais

“vor 5 Minuten” – allemand

Puis-je faire quelque chose comme ceci dans ssortingngs.xml?

{0} minutes ago 

Et puis de la magie comme

 getSsortingng(R.id.timeFormat, dynamicTimeValue) 

Ce comportement résout également l’autre problème avec des ordres de mots différents.

Oui, formatez simplement vos chaînes de la manière standard Ssortingng.format() .

Voir la méthode Context.getSsortingng(int, Object...) et la documentation Android ou Java Formatter .

Dans votre cas, la définition de chaîne serait:

 %1$d minutes ago 

Si vous avez besoin de deux variables dans le XML, vous pouvez utiliser:

%1$d text... %2$d ou %1$s text... %2$s pour les variables de chaîne.

Exemple:

ssortingngs.xml

 Website %1$s isn\'t yet available, I\'m working on it, please wait %2$s more days 

activité.java

 Ssortingng site = "mywebsite"; Ssortingng days = "11"; //Toast example Ssortingng notyet = getSsortingng(R.ssortingng.notyet, site, days); Toast.makeText(getApplicationContext(), notyet, Toast.LENGTH_LONG).show(); 

PS: Lisez le commentaire de Flaxie ci-dessous

Si vous devez formater vos chaînes à l’aide de Ssortingng.format (Ssortingng, Object …), vous pouvez le faire en plaçant vos arguments de format dans la ressource ssortingng. Par exemple, avec la ressource suivante:

 Hello, %1$s! You have %2$d new messages. 

Dans cet exemple, la chaîne de format a deux arguments:% 1 $ s est une chaîne et% 2 $ d est un nombre décimal. Vous pouvez formater la chaîne avec des arguments de votre application comme ceci:

 Resources res = getResources(); Ssortingng text = Ssortingng.format(res.getSsortingng(R.ssortingng.welcome_messages), username, mailCount); 

Si vous souhaitez en savoir plus: http://developer.android.com/intl/pt-br/guide/topics/resources/ssortingng-resource.html#FormattingAndStyling

Notez que pour cette application particulière, il existe une fonction de bibliothèque standard, android.text.format.DateUtils.getRelativeTimeSpanSsortingng() .

Il y a plusieurs façons de l’utiliser et je vous recommande de voir cette documentation sur le format Ssortingng.

http://developer.android.com/intl/pt-br/reference/java/util/Formatter.html

Mais si vous n’avez besoin que d’une seule variable, vous devrez utiliser% [type][type] pourrait être n’importe quel indicateur (voir Types de drapeau à l’intérieur du site ci-dessus). (c.-à-d. “Je m’appelle % s ” ou pour définir mon nom UPPERCASE, utilisez “Mon nom est % S “)

 Hello, %1$S! You have %2$d new message(s) and your quote is %3$.2f%%. Hello, ANDROID! You have 1 new message(s) and your quote is 80,50%.