Dies geschieht auf allen Geräten, die wir in Indonesien haben.Android erzeugt falschen Sprachcode für Indonesien?
Die Ländercodes korrekt sind, auch die Anzeigesprache und ISO3 korrekt erscheinen:
Locale.getDefault().getISO3Country() // "IDN"
Locale.getDefault().getDisplayCountry() // "Indonesia"
Locale.getDefault().getCountry() // "ID"
Locale.getDefault().getISO3Language() // "ind"
Locale.getDefault().getDisplayLanguage() // "Bahasa Indonesia"
Aber der normale Sprachcode falsch ist, sollte „id“ statt „in“ sein. Und dann android auch die falsche language_COUNTRY Kennung zu erzeugen, sollte „id_ID“ anstelle von „in_ID“:
Locale.getDefault().getLanguage() // "in"
Locale.getDefault().toString() // "in_ID"
Ist das ein bekanntes Problem? Was können wir dagegen tun?
cyanide schlägt vor, nur das Gebietsschema zu überschreiben, aber was ist mit den Geräten, die wirklich "in" und nicht "id" verwenden müssen, wäre es dann das falsche für sie?
Es hängt davon ab, was die Back-End-Server verwenden :-) Wenn es Java ist, erwarten sie auch "in". Java verwendet immer noch die Legacy-Codes, und das ist auch der Grund, warum Android sie verwendet: Kompatibilität mit dem offiziellen JDK. –
Backend ist in node.js, aber guter Punkt! Obwohl ich glaube, ich lese, dass der Konstruktor die neuen Codes akzeptiert, werden nur die alten Codes aus Gründen der Kompatibilität zurückgegeben. Würde sagen, es ist Zeit für eine Support-Locale-Lib. : p –