كيفية الوصول إلى قيمة "اللغة المحلية" (لتطبيق التدويل) في جانب الخادم في GWT؟

StackOverflow https://stackoverflow.com//questions/25009115

  •  20-12-2019
  •  | 
  •  

سؤال

حسنًا، أنا أعمل على تطوير تطبيق يدعم التدويل.انا استخدم Static String Internationalization طريقة لتطبيقي .

دعنا أقول يمكن أن يحتوي تطبيقي على نسخة باللغة الإنجليزية والألمانية ، لذلك -لقد قمت بإنشائها MyMessages.java الذي يحتوي على جميع نصوص الرسائل مكتوبة باللغة الإنجليزية.ثم قمت بإنشاء MyMessages_ge وهو تقريبا نفس MyMessages.java باستثناء أن النص مكتوب باللغة الألمانية

-الثاني، في MyProject.html أملك <meta http-equiv="content-type" content="text/html; charset=UTF-8"> للتأكد من أنه سيدعم جميع اللغات

- الثالثة، في MyProject.gwt.xml أملك <extend-property name="locale" values="ge"/>

الآن أقوم بتشغيل تطبيقي في Eclipse http://localhost:8888/MyProject.html?gwt.codesvr=127.0.0.1:9997&locale=ge ويظهر كل النص الألماني كما كنت أتوقع.

ومع ذلك، أريد أن أعرف أن تطبيقي ألماني At Server Side.وهذا يعني أنه عندما يكون GWT Gui الخاص بي في النسخة الألمانية، فسيعرف الخادم الخاص بي ذلك languageCode=1 إذا كان باللغة الإنجليزية، فسيستخدم الخادم اللغة الافتراضية languageCode=0

وهنا ما فعلته.في HeaderPresenter.java

@Override
public void prepareFromRequest(PlaceRequest request){
    super.prepareFromRequest(request);
    String locale=request.getParameter("locale", "");
    setLanguage(locale); // servercall back here
}

لذا، عند تشغيل تطبيقي لأول مرة، يجب أن يسمح للخادم بمعرفة اللغة التي يستخدمها تطبيق Gwt

@Override
public SetLanguageResult execute(SetLanguage action, ExecutionContext context)
        throws ActionException {
    String locale=action.getLocale();
    if("ge".equals(locale)){
        Data.languageType=1;
    }
    return null;
}

ومع ذلك ، لا يبدو العمل عندما أذهب إلى طلب order ، سيكون عنوان URL http://localhost:8888/MyProject.html?gwt.codesvr=127.0.0.1:9997&locale=ge#!orderPage ليس في الشكل http://localhost:8888/MyProject.html?gwt.codesvr=127.0.0.1:9997#!orderPage;locale=ge ولهذا السبب لم يتمكن الخادم من التقاط ملف locale قيمة.

أعتقد أنني أساءت فهم شيء ما هنا.أنا مربكة جدا.

إذًا كيف يمكن الوصول إلى قيمة "الإعدادات المحلية" (لتطبيق التدويل) في جانب الخادم في GWT؟

هل كانت مفيدة؟

المحلول

توجد فئة فائدة للتعامل مع المعلومات المحلية في GWT SDK.لا حاجة لتحليل معلمات URL بنفسك.القي نظرة على LocaleInfo.getCurrentLocale() ثم استخدم getLocaleName() طريقة للحصول على الكود الفعلي كسلسلة.

لم أفهم تمامًا كيفية تخزين المعلومات المحلية على جانب الخادم؟مع الأخذ في الاعتبار أن servlets مشتركة بين المستخدمين، يجب عليك إرفاق الملف المحلي بالجلسة أو تمريره مع كل مكالمة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top