[Android] Les paramètres dans strings.xml sont-ils possibles?



Answers

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

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

Exemple:

strings.xml

<string name="notyet">Website %1$s isn\'t yet available, I\'m working on it, please wait %2$s more days</string>

activity.java

String site = "mywebsite";
String days = "11";

//Toast example
String notyet = getString(R.string.notyet, site, days);
Toast.makeText(getApplicationContext(), notyet, Toast.LENGTH_LONG).show();

PS: Lire le commentaire de Flaxie ci-dessous

Question

Cette question a déjà une réponse ici:

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

Par exemple:

"Il y a 5 minutes" - Anglais

"vor 5 Minuten" - Allemand

Puis-je faire quelque chose comme ce qui suit dans strings.xml?

<string name="timeFormat">{0} minutes ago</string>

Et puis de la magie comme

getString(R.id.timeFormat, dynamicTimeValue)

Ce comportement résoudrait également l'autre problème avec différents ordres de mots.




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




Links