كيفية اكتشاف ما إذا كان الهاتف المحمول يدعم يونيكود من لغة معينة في ج2 مي
-
13-12-2019 - |
سؤال
أنا تصميم تطبيق في ج2 مي ، حيث لدي فقط لإعطاء واجهة بلغة معينة ، ويقول الأردية.ما أفعله هو استخدام أحرف يونيكود لطباعة الملصقات ، مثل" مرحبا " في لغتي ، وعرضها بالطريقة الصحيحة.كما يفترض هذا التطبيق لتشغيل على نماذج المحمول مختلفة, أريد فقط أن أعرف أنه إذا كان البرنامج حليف ممكن للتحقق من أنه إذا كان المحمول معين تشغيل طلبي لا يدعم يونيكود لغتي?لأنه إذا لم يحدث ذلك فإنه يجب أن تظهر التسميات في اللغة الإنجليزية الافتراضية.لم أكن رمز حتى الآن باستثناء تحويل الحروف الهجائية الإنجليزية إلى أحرف لغتي ، أريد فقط أن أعرف وإذا كان ذلك ممكنا لإيجاد وسيلة لأداء هذا الاختيار.شكرا مقدما :)
المحلول
هناك System
الملكية حيث يمكنك قراءة اللغة الحالية المحددة على الهاتف.
String locale = System.getProperty("microedition.locale");
يحدد الحرفان الأولان اللغة بينما يحدد الحرفان الأخيران البلد.على سبيل المثال, "en-US"
يمثل اللغة الإنجليزية في الولايات المتحدة الأمريكية ، بينما "pt-BR"
يمثل البرتغالية في البرازيل.
الشيء الجيد هو أن يكون لديك كل واجهة المستخدم الرسومية الخاصة بك String
ق تحميلها على أساس اللغة الحالية.لنفترض أنك تخزن كل هذه السلاسل في مصفوفة واحدة وتهيئتها على النحو التالي:
String messages [] = null;
if (locale.startsWith("pt")) {
messages = new String [] {
"Novo Jogo",
"Configurações",
"Ajuda"
};
} else { // default language is English
messages = new String [] {
"New Game",
"Settings",
"Help"
};
}
ثم تقوم بتعريف بعض الثوابت لتحديد كل فهرس.
static final int MSG_NEW_GAME = 0;
static final int MSG_SETTINGS = 1;
static final int MSG_HELP = 2;
واستخدامها مثل هذا (حيث مينوليست هو مثيل القائمة):
menuList.append(messages[MSG_NEW_GAME], null);
menuList.append(messages[MSG_SETTINGS], null);
menuList.append(messages[MSG_HELPS], null);
مع هذا لديك دعم لغتين في التطبيق الخاص بك.كلما زاد عدد الحالات التي لديك لبدء الرسائل بناء على اللغة ، كان ذلك أفضل للمستخدم النهائي.
كما رأينا في http://smallandadaptive.blogspot.com.br/2008/12/internationalization-or-just-i18n-count.html