Получение всех меток дней недели на языке пользователя - PullRequest
1 голос
/ 11 сентября 2011

Я хотел бы сделать что-то более умное, чем:

String[] strDaysEn = new String[] { "Sunday", "Monday", "Tuesday", "Wednesday", "Thusday", "Friday", "Saturday" };
String[] strDaysFr = new String[] { "Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi" };

или

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="week_days">
        <item>Monday</item>
        <item>Tuesday</item>
        <!-- and so on -->
    </string-array>
</resources>

Я хотел бы сделать это автоматически в моем языке пользователя и получить выгоду от Javaи Дата, так что в основном я должен был бы сделать цикл с:

for (i= 0 to 6)
    DateFormat formatter = new SimpleDateFormat("E");
    Date date = (Date) formatter.parse(new Date()+i);
    System.out.println(date);

Это было бы действительно лучше, потому что java.Date предоставит мне все переводы автоматически!И я, конечно, не хочу изобретать велосипед!

Но этот цикл кажется пустой тратой времени и процессора, и я уверен, что есть лучший способ добиться этого.

Спасибомного за любой совет!

Ответы [ 2 ]

5 голосов
/ 11 сентября 2011

Просто получите названия дней из локали нужного вам языка, без использования какого-либо средства форматирования между ними.Вы не должны позволять переводчикам вашего приложения выполнять работу, уже проделанную в рамках.

String[] days = new DateFormatSymbols(Locale.getDefault()).getWeekdays();
1 голос
/ 11 сентября 2011

Android предоставляет хороший способ решить эту проблему для нескольких языков.Посмотрите на Строковые ресурсы и Предоставление ресурсов .Это позволяет вам указывать зависимые от языка файлы в разных ресурсах XML.Android автоматически выберет правильный в зависимости от локали устройства пользователя.

В эти дни вы можете написать <string-array /> внутри res/values/strings.xml для основного / резервного языка.Чтобы обеспечить переводы, просто создайте альтернативные ресурсы.Например, для французского, создайте папку values-fr и сохраните французский strings.xml в res/values-fr/strings.xml.

Вот пример массива в файле ресурсов:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="week_days">
        <item>Monday</item>
        <item>Tuesday</item>
        <!-- and so on -->
    </string-array>
</resources>

Вы можете получить этот массив в коде через

String[] days = getResources().getStringArray(R.array.week_days);

(week_days isимя массива строк в этом примере)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...