วิธีตั้งค่าข้อความในกล่องโต้ตอบของ Google API ในภาษาเริ่มต้นของแอปพลิเคชัน

ฉันได้ตั้งค่าภาษาเริ่มต้นของแอปพลิเคชันเป็นภาษาฮินดี (เช่น นอกเหนือจากภาษาเริ่มต้นของระบบ) และใช้ API ของ Google (PlaceAutocomplete, GoogleSignIn)

ทั้งสองแสดงข้อความเป็นภาษาอังกฤษ (ภาษาเริ่มต้นของระบบ) แทนที่จะเป็นภาษาฮินดีหรือภาษาเริ่มต้นของแอปพลิเคชัน

มีวิธีใดบ้างที่ฉันสามารถบังคับให้โหลดเป็นภาษาเริ่มต้นของแอปพลิเคชันหรือฉันสามารถส่งภาษาเริ่มต้นของแอปพลิเคชันได้

ขอบคุณ. มันจะเป็นประโยชน์จริงๆ กำลังมองหาการอัปเดตใด ๆ


person UMESH0492    schedule 12.09.2016    source แหล่งที่มา
comment
ดูเหมือนว่าสิ่งนี้อาจไม่สามารถทำได้กับ API ดั้งเดิมในปัจจุบัน: stackoverflow.com/questions/34321356/   -  person Demonsoul    schedule 22.09.2016


คำตอบ (1)


คุณไม่สามารถตั้งค่าภาษาเริ่มต้นของระบบได้ หากคุณต้องการให้หลายภาษา จากนั้นจาก Locale คุณสามารถตั้งค่าภาษาได้ โดยค่าเริ่มต้นจะเป็นภาษาอังกฤษ หากคุณเปลี่ยน ให้ทำให้เป็นเช่นนี้ โปรดตรวจสอบด้านล่าง รหัส.

การเลือกภาษาและบันทึกค่าของภาษาใน SharedPreferences หลังจากทุกครั้งที่เริ่มแอป ให้ตรวจสอบค่าของการตั้งค่าภาษา จากนั้นจึงทำการเลือก

ตรวจสอบให้แน่ใจว่าควรเพิ่มทุกสตริงในโฟลเดอร์ค่าในรูปแบบนี้

สำหรับภาษาอังกฤษเริ่มต้น ให้ใส่สตริงทั้งหมดไว้ใน values สำหรับภาษาฮินดี คุณต้องตั้งค่า values-hi สิ่งเดียวกันที่เกิดขึ้นกับภาษาอื่น ๆ ให้ใส่สตริงด้วยรหัสประเทศ สำหรับรหัสประเทศ ไปจากที่นี่

 SharedPreferences sharedPreferences = getSharedPreferences(Common.MYPREFERENCE_LANGUAGE, Context.MODE_PRIVATE);
            SharedPreferences.Editor editor = sharedPreferences.edit();
            if (parent.getSelectedItem().equals("English")) {
                Utils.updateLanguage(activity, "en");
                editor.putString("language", "en");

            } else {
                Utils.updateLanguage(activity, "hi");
                editor.putString("language", "hi");
            }
            editor.apply();

โมฆะสาธารณะคงที่ updateLanguage (บริบทบริบท, String lang) {

    String mlanguage = getlanguage(lang);
    PurplkiteLogs.logError("", " language update " + mlanguage);
    Locale locale = null;
    Configuration config;

    try {
        if (mlanguage.equals("en")) {
            locale = Locale.ENGLISH;

        } else if (mlanguage.equals("hi")) {
             locale = setLocale(context,"hi");

        } else {
            locale = new Locale(mlanguage);
        }

        Locale.setDefault(locale);
        config = new Configuration();
        config.locale = locale;
        context.getResources().updateConfiguration(config,
                context.getResources().getDisplayMetrics());
    } catch (Exception e) {

    } finally {
        mlanguage = null;
        config = null;
        locale = null;
        context = null;
    }
}

private static String getlanguage(String lang) {
    String mlang = null;
    if (lang != null) {
        if (lang.trim().equalsIgnoreCase("hi")) {
            mlang = "hi";
        } else {
            mlang = "en";
        }
    }
    return mlang;
}

public static Locale setLocale(Context context ,String lang ) {
    Locale myLocale = new Locale(lang);
    Resources res = context.getResources();
    DisplayMetrics dm = res.getDisplayMetrics();
    Configuration conf = res.getConfiguration();
    conf.locale = myLocale;
    res.updateConfiguration(conf, dm);
    return conf.locale;
}

ขอบคุณ หวังว่านี่จะช่วยคุณแก้ปัญหาและล้างแนวคิดของคุณ

person Saveen    schedule 20.09.2016
comment
คุณไม่เข้าใจคำถามของฉันชัดเจน ฉันได้ทำสิ่งเหล่านี้แล้ว ต้องการทราบวิธีทำให้ Google API เหล่านี้เป็นภาษาท้องถิ่นตามภาษาแอปของฉัน - person UMESH0492; 22.09.2016