Angular: [i18n] خطة 2.x المستقبلية

تم إنشاؤها على ٩ يونيو ٢٠١٦  ·  122تعليقات  ·  مصدر: angular/angular

الميزات المخطط لها لـ 2.0:

  • [x] الجنس
  • [x] الجمع
  • [x] وقت تشغيل مترجم
  • [x] مترجم حاليا
  • [x] دعم xliff
  • [x] معرّفات رسائل التجزئة
  • [x] رسائل i18n

معالجة المشاكل:

إصلاح آخر 2.0:

  • [] Template Parser: خطأ عند تمرير الكائن الحرفي كمعلمة توجيه. # 9571
  • [] تحسين Html Parser # 9340
  • [] الانسحاب من الترجمة https://github.com/angular/angular/issues/7814
  • [x] توفير تنفيذ NgLocalization لكل لغة
  • [] تنسيق الجمع ICU # 9117
  • [] السماح برسائل وحدة العناية المركزة في السمات
  • [] تنفيذ رسائل وحدة العناية المركزة الترتيبية
  • [] استخدم سلاسل الترجمة خارج النموذج رقم 11405
i18n

التعليق الأكثر فائدة

christiandreherfankckemmlermarcaljdagerberesinek كان كتاب طبخ للI18N الإفراج عن angular.io: https://angular.io/docs/ts/latest/cookbook/i18n.html

ال 122 كومينتر

vicb لقد رأيت بعض المنشورات حول i18n في الريبو الزاوي. كيف يرتبط هذا بـ https://github.com/angular/i18n؟ هل هذه مبادرة جديدة؟

thelgevold مثل معظم الأشياء في ng2 ، كانت مستودعات إعادة الشراء المستقلة موجودة للنماذج الأولية المبكرة. عادة ما يتم عمل كبير داخل هذا واحد.

مرحبًا ، هل هناك أي مستند حول كيفية عمل ذلك؟
أتساءل عما إذا كان بإمكاني كتابة المفاتيح بالترميز والنص العادي في ملفات الترجمة مثلما أستخدمها مع الترجمة الزاوية.

{{ 'HOMEPAGE__ACTION__SIGNUP' | translate }}

بترميز مثل هذا ، يمكن لشخص خارجي واحد تحرير جميع اللغات المدعومة (نظرًا لأنهم يقيمون في ملف JSON / po ، ملف واحد لكل لغة). إذا كانت اللغة الرئيسية في الترميز ، فستحظر جميع المراجعات حتى يتمكن المطور من تغيير السلسلة في كود الترميز.

شكرا!

marcalj المواصفات (القديمة) هي https://docs.google.com/document/d/1mwyOFsAD-bPoXTk3Hthq0CAcGXCUw-BtTJMR4nGTY-0/edit.

حالة الاستخدام الخاصة بك مدعومة.

شكرا فيكتور! أي خطط لتضمين الاختصارات العددية؟ إنه شيء يدرك سياق i18n.

marcalj ، هل يمكنك من فضلك إنشاء مشكلة منفصلة بمزيد من التفاصيل؟ شكرًا (ولكن ربما ليس 2.0 على أي حال)

هل سيكون هناك دعم للترجمات الديناميكية (يتم تحميلها من الخادم)؟
أي خطط لتوثيق i18n في المستقبل القريب؟
شكرا!

الخطة الحالية هي إنشاء ثنائي لكل لغة.

سنعمل على المستند عندما تصبح الميزات متاحة. يجب أن يكون لدينا بالتأكيد حد أدنى من المستندات لإصدار 2.0.

ماذا تقصد ب "ثنائي لكل لغة". هل سيكون ملف المورد المنشور ثنائيًا قليلاً مثل PO / MO حيث يتم استخدام MO insted لـ PO لتحسين الأداء. هناك أيضًا أمثلة سيئة في النشر الثنائي مثل XAML / BAML.

لست سعيدًا جدًا بأساليب توطين أنجوار الحالية. هذه هي الأسباب:

  • العديد من واجهات برمجة التطبيقات والأساليب المختلفة.
  • يجب عليك تعديل القوالب الخاصة بك كثيرًا عن النماذج الأصلية بحيث يصبح من الصعب قراءة القوالب وصيانتها.
  • يجب عليك تحديث ملف المورد الأصلي يدويًا والتأكد من أنه متزامن مع المعرفات المستخدمة في النموذج

ما نحتاجه حقا هو

  • طريقة تعريب واحدة رسمية بتنسيق موارد صلبة (تعتمد على XML أو JSON)
  • الحد الأدنى من التأثير على القوالب. على سبيل المثال ، قم فقط بإضافة سمة "localize" في عنصر الجذر وسمات "noloc" المحتملة إلى تلك العناصر غير المترجمة.
  • القدرة على إضافة تعليقات الترجمة إلى السلاسل في القوالب.
  • أداة تقوم بمسح شفرة المصدر لاستخراج السلاسل الأصلية والتعليقات في ملف الموارد. استخدم هويات دائمة قدر الإمكان. على سبيل المثال ، استخدم سمات المعرف أو إذا لم يتم توفيرها ، فاستخدم مزيجًا من الموقع وقيمة السلسلة الأصلية.
  • يجب أن يكون ملف المورد هذا قادرًا على تخزين سلاسل عادية وسلاسل ذات أنماط ({{...}}) وسلاسل متعددة وسلاسل جنس تشبه إلى حد ما ملفات قيمة Android.
  • طريقة سهلة لتعبئة الموارد المحلية وتنزيلها حسب الحاجة
  • القدرة على تغيير اللغة دون إعادة التحميل.

أنا مستعد للمساعدة إذا كنتم بحاجة إلى بعض المساعدة.

@ jaska45 معظم

شكرا. صوت جيد جدا. نادرًا ما يحدث تغيير اللغة ، وفي هذه الحالة يكون من المقبول فقدان حالة ما. بالتأكيد أدنى أولوية في قائمتي ولا تستحق بذل الكثير من الجهود.

vicb لست متأكدًا مما إذا كنت أفهم هذا "الثنائي لكل لغة" بشكل صحيح ، ولكن هل يعني ذلك أنه لا يمكن إضافة ترجمات في وقت التشغيل؟ نقوم حاليًا ببناء SAAS بدعم من المستأجر ، حيث يمكن لكل مستأجر توسيع نظامنا من خلال توفير مجموعته الخاصة من تعريفات النموذج ومجموعة الترجمات الخاصة به ، لذلك في حالتنا سيكون من المهم حقًا أن تكون قادرًا على إضافة ترجمات في وقت التشغيل.

يحتوي DatePipe @ angular / المشترك ( date_pipe.ts ) حاليًا على قائمة

// TODO: move to a global configurable location along with other i18n components.
var defaultLocale: string = 'en-US';

هل القدرة على تمرير سلسلة محلية إلى DatePipe مضمنة في خطط i18n للإصدار 2.0؟

vicb يضبط تطبيقنا لغة الواجهة الأمامية بمجرد إحضار كائن المستخدم من الشبكة بعد تمهيد التطبيق. لذا ، هل حددت ما إذا كانت عملية إعادة التعزيز هذه ستكون سهلة؟

هناك جزء واحد من المعلومات لا يمكنني العثور عليها في أي مكان ، فقط للتأكيد والتمكن من النوم ليلاً :)
فإن تنفيذ I18N الرسمي دعم gettext الملفات أليس كذلك؟ هذا شائع جدًا ، لذلك أعتقد أنه يجب أن يكون متاحًا ، ولن نتعثر مع jsons و xtb فقط ، هل أنا على حق؟ أعني أن gettext شائع جدًا لدرجة أنه لا يحتاج حتى إلى ذكره ، فهو دائمًا موجود خارج الصندوق في أي تطبيق i18n ، وهذا ما أفكر فيه.

لا توجد خطة لدعم po لـ 2.0. يجب أن تكون قادرًا على التحويل من / إلى xliff.

آسف على لياليك!

ما هو الفكر وراء تخزين السلاسل بتنسيق XML؟ لم تواجه أي مشاكل في الاستخراج إلى POT وتجميع PO إلى JSON في angular-gettext. لقد خدمنا بشكل جيد للغاية:

// en-GB.json, cached into localStorage after first request
"en-GB": {
    "Hello {{firstName}}": "{{firstName}}, Gutentag"
}

سؤال عشوائي: أي أفكار حول عناوين URL المترجمة في جهاز التوجيه؟

سؤال عشوائي: أي أفكار حول عناوين URL المترجمة في جهاز التوجيه؟

vsavkin ما هي الخطط؟

لا نخطط لتقديم أي دعم لعناوين URL المترجمة حتى انتهاء النهائي. كانت لدينا بعض الأفكار حول طرق القيام بذلك بعد ذلك ، لكننا لم نتخذ أي قرارات.

أصابني ng2 i18n بالصداع. كنت أبحث عن توجيه i18n في الصادرات: D بلا نهاية ... بالنظر إلى مواصفات الاختبار ، والشفرة صدمني البرق:

سيقوم مترجم القالب نفسه بتحويل القالب وتوطينه.

هل أنا محق في أن سير العمل الأساسي لـ i18n سيكون على النحو التالي:

  1. قم بتمييز العناصر باستخدام i18n أو قم بتضمين أجزاء html في تعليقات i18n.
  2. قم بتشغيل المستخرج بطريقة ما (ng cli؟) لإنتاج xliff.
  3. مرر ذلك للترجمة واسترجع الملف الثنائي المترجم.
  4. قم بتكوين الزاوي في التمهيد بطريقة ما لاستخدام ملف ثنائي اللغة المطلوب.
  5. سيقوم مترجم القالب نفسه بتحويل القالب وتوطينه.

لأنه إذا كان الأمر كذلك ، في الوقت الحالي سأستخدم توجيه "i18n" مخصص لتقليد أساسيات الترجمة حتى الوصول 2.0.

هل هذا هو سير العمل المقصود لـ i18n في angular2 في المستقبل؟

@ concept-hf هذا صحيح ، راجع المستند الذي ربطته سابقًا في هذه المناقشة.

ستقوم بتشغيل ng-xi18n لإنشاء ملف xliff.

لدينا توجيهان وفلتر لرسائل وحدة العناية المركزة

vicb هل ستتوفر في RC5 القادم؟ :)

يعتمد على متى يكون RC5 ... وإلا فسيكون في RC6

ما هو إصدار XLIFF الذي سيتم دعمه؟ 1.2 أو 2.0 أو كليهما؟

هل يتم استخراج الرسائل النصية من قوالب html مثل ميزات angular-gettext المدعومة من angular 2 core؟

  • سيكون في RC6 ،
  • xliff 1.2 في الوقت الحالي.

هل يعني جزء "رسائل i18n" أن ng2-translate سيصبح غير ضروري وسيوفر Angular جميع الأدوات التي نحتاجها لاستخدام سلاسل الترجمة؟

إذا كنت بحاجة فقط إلى {{ 'TRANSLATION_ID' | translate }} ، فهل يمكنني استخدامه الآن؟ (rc5)
وكيفية استيرادها

vicb هذه أخبار جيدة !! شكرًا لكم جميعًا على العمل الشاق يا رفاق ، أحبوا لعبة Angular 2!

أي خطط لدعم تنسيق الرسائل json (none-xml)؟

هل يعني جزء "رسائل i18n" أن ترجمة ng2 ستصبح غير ضرورية وستوفر Angular جميع الأدوات التي نحتاجها لاستخدام سلاسل الترجمة؟

الهدف هو أن يكون i18n مدمجًا. لست متأكدًا من الميزات التي يغطيها ng2-translate.

إذا كنت بحاجة فقط إلى {{'TRANSLATION_ID' | ترجمة }}

بناء الجملة هو <p i18n>TRANSLATION_KEY</p> / <p i18n>test in src lang</p> . شاهد المستند المرتبط بأحد التعليقات الأولى في هذا الموضوع

الحب الزاوي 2!

أنا أيضا !

أي خطط لدعم تنسيق الرسائل json (none-xml)؟

ليس الآن. يمكنك إنشاء طلب ميزة وسنقوم بالتقييم وفقًا للاهتمام الذي تحصل عليه المشكلة.

بالنسبة إلى تطبيق كبير جدًا ، قد يؤثر وجود ملف واحد (xliff) لكل لغة على أوقات التحميل. هل هناك طريقة لتقسيم ملف اللغة إلى ملفات أصغر؟ إذا كانت الإجابة بنعم ، فهل سيتم تعديلها باستخدام NgModules (0..1 xliff لكل NgModule)؟

قد يؤثر وجود ملف واحد (xliff) لكل لغة على أوقات التحميل

في وضع AoT (المترجم) ، لا يتم تحميل ملف الترجمة حيث يتم تجميع القالب إلى اللغة الهدف. سيكون هذا صحيحًا فقط في تجميع JIT (وقت التشغيل).

يرجى أيضًا إنشاء طلب ميزة إذا كنت بحاجة إلى هذه الميزة. شكرا.

لطالما كانت
يتطلب تنفيذ i18n للزاوية 2 مزيدًا من العمل ، ولكن من المحتمل أن يكون أفضل كثيرًا بالنسبة للتطبيقات (المؤسسات) الكبيرة ، حيث سيدعم التعددية ، والجنس ، والاستخراج التلقائي للسلاسل.

إذا كان تطبيق i18n يغطي كل ما تفعله ng2-translate بالفعل ، فسأقوم بإهماله ، وإلا سأحاول استيراد بعض الأدوات من i18n إلى ng2-translate (مُحمل xliff على سبيل المثال) وركز المكتبة على ما لا يفعله i18n ' ر تفعل

باستخدام RC-6 ، هل الأدوات متاحة حتى الآن للقيام بالاستخراج التلقائي للسلاسل؟ إذا كان الأمر كذلك ، يرجى توجيهي في اتجاههم - جنبًا إلى جنب مع أي مستندات لتتماشى معها.
_تحديث_ : أرى أن هناك

ليس بعد ، لقد بدأت للتو في العمل عليها :)
يمكنك استخدام الأداة ng-xi18n تمامًا مثل ngc: أضف نصًا برمجيًا في package.json الخاص بك يقوم بـ "ng-xi18n"
مثال: "extract": "ng-xi18n" ثم قم بتشغيل npm run extract ، يجب أن يقوم بإنشاء ملف messages.xlf مع السلاسل الخاصة بك لترجمتها

مرحبا،

  • عندما أقوم بتنفيذ البرنامج النصي ng-xi18n ، لا يمكنه العثور على الموارد عند استخدام مسار مطلق.
  • هل من الممكن استخدام i18n مع الاستيفاء؟

يعتبر.

عندما أقوم بتنفيذ البرنامج النصي ng-xi18n ، لا يمكنه العثور على الموارد عند استخدام مسار مطلق.

عندما تعطي مسارًا للأمر ، أعتقد أنه سيبحث عن ملف tsconfig.json ، أو يستخدم المعلمات الافتراضية بخلاف ذلك (وربما يفشل فشلاً ذريعًا). لست متأكدًا من أن مؤلف الأداة بعيد بعض الوقت ، مما يعني أنه لم يكن لدي أي معلومات حقيقية عن الأشياء :)

هل من الممكن استخدام i18n مع الاستيفاء؟

طالما أنك تستخدم التوجيه على عناصرك ، فيجب أن يعمل. هل لديك مثال في الاعتبار؟

بالنسبة لسؤالي الأول: إنها ليست مشكلة حقًا لأنني أعتقد أنه من الأفضل استخدام المسارات النسبية.
بالنسبة للثاني: أحتاج إلى تكرار قائمة المفاتيح (KEY_A ، KEY_B ، ...) وعرض الترجمة ذات الصلة لتلك المفاتيح. حاولت وضع سمة i18n على العنصر الخاص بي ، لكن البرنامج النصي أنشأ xlf trans التالي.

<div *ngFor="let k of myKeys" i18n>{{k}}</div>

<trans-unit id="fdbc61d14108f805b0c5234d1af631b8a03f8001" datatype="html"> <source><x id="INTERPOLATION"/></source> <target/> </trans-unit>```

آه فهمت. أعتقد أنه يعمل فقط مع نص ثابت ، وليس مع المتغيرات

يرجى توجيه سؤال الدعم إلى القوائم الخارجية والاحتفاظ بـ GH لطلبات الميزات والأخطاء

كيفية الحصول على سلسلة i18n في البرنامج النصي؟
فمثلا:

let _THIS_IS_A_I18N_STRING = ???
alert(_THIS_IS_A_I18N_STRING);

لا أعتقد أن هذا ممكن ، كما قلت من قبل ، فهو يعمل فقط مع نص ثابت ، ولن يقوم بتحليل النص في كود js ، فقط القوالب

أنا أستخدم $translate.instant('KEY_FOO_BAR'); كثيرًا ... هناك الكثير من حالات الاستخدام حول استخدامه خارج القالب.

@ zh99998marcalj هذا غير ممكن مع الضمانة الحالية. هل يمكنك إنشاء طلب ميزة مناسب في أداة تعقب المشكلات وملء نموذج المشكلة وإضافة حالات الاستخدام (والرابط بتنفيذ آخر إن أمكن).

شكرا.

يرجى أيضًا ربط طلب الميزة هنا ؛ أود أن أؤيده.

يعتبر

vicb @ db6edr https://github.com/angular/angular/issues/11405 شكرا! :)

كنت أتساءل كيف ستعمل i18n مع حزم مكون / واجهة مستخدم مترجمة؟

اسمحوا لي أن أشرح وضعنا:
نحن نقوم بإنشاء مكونات واجهة المستخدم باعتبارها (ميزة) NgModules والتي ننشرها في سجل npm داخلي. بعد ذلك ، بمستوى أعلى ، سيقوم التطبيق الفعلي (ربما لعميل معين) بتثبيت هذه الوحدات والرجوع إلى المكون. الآن ، نظرًا لأن الترجمة تتم حاليًا على مستوى التطبيق ، فسيتعين علينا دمج ملفات xlf من وحدة الميزة مع وحدة التطبيق وتوفير XLF المدمج كـ TRANSLATIONS.

مثال محدد: توفر وحدة المصادقة الخاصة بنا مكون المصادقة الذي يعرض زر تسجيل الدخول الذي يجب أن يكون مترجماً ("تسجيل الدخول" ، "Anmelden" ، وما إلى ذلك). من الناحية المثالية ، نود توفير messages.us.xlf و messages.de.xlf وما إلى ذلك من حزمة npm التي تشحن AuthenticationComponent. لذلك سيتعين على التطبيق الرئيسي دمج ملفات xlf هذه واستخدامها في التمهيد ، لأنه يمكن توفير قيمة ترجمة واحدة فقط (صحيح؟).

في وضع AOT ، يعني هذا أن ngc ينشئ ملفات ngfactory لكل وحدة نمطية. هل هناك طريقة لحزم ملفات ngfactory المترجمة في npm وجعل المترجم يشير إلى ملفات ngfactory المترجمة عند استدعاء ngc للتطبيق الرئيسي؟ يبدو تجميع جميع القوالب التابعة في كل تطبيق لكل لغة أمرًا مكثفًا إلى حد ما.

شكرا!

paumayr ، ليس لدينا حالة الاستخدام هذه حتى الآن ، لكن هذا بالتأكيد شيء نحتاج إلى تغطيته.

هذا يعني أنه في الإصدار 2.0 النهائي لن يكون لديك خيار آخر سوى إنشاء ملف واحد.

ومع ذلك ، يرجى إنشاء طلب ميزة منفصل يصف احتياجاتك وسنلقي نظرة على المزيد من الإصدارات.

شكرا

هل هناك أي أدلة / أفضل الممارسات حتى الآن لسير العمل حول كيفية العمل مع XLIFF؟ لقد أنشأت سؤال Stack Overflow لهذا ، لكن لم أتلق أي إجابات. أتساءل لأنني أتيت من خلفية .po ولا يمكنني العثور على أداة واحدة جيدة (مثل Poedit) لتناسب احتياجاتي (تحديث ملفات messages.LANG-lang.xlf من messages.xlf مقابل مثال).

أيضًا: هل هناك أي خيارات لـ ng-xi18n حول موقع الاستخراج؟ أرغب في الحصول على مجلد منفصل لتخزين ترجماتي فيه.

وأخيرًا وليس آخرًا: هل من المفترض حقًا إنشاء ملف messages.LANG-lang.ts يدويًا لكل ملف messages.LANG-lang.xlf ، أم سيتم في النهاية تحليل الملف .xlf تلقائيًا (لـ JIT ، خاصة لأغراض التنمية)؟

يوجد أمر لتحديث ملفات xlf لكل لغة :)

هل توجد أي أدلة

ocombe يعمل على بعض المستندات

لقد جئت من خلفية .po

قم بإنشاء مشكلة إذا كنت بحاجة إلى مزيد من التنسيق - سنقوم بالتقييم بناءً على شعبية المشكلة.
في غضون ذلك ، يجب أن تكون قادرًا على تحويل po <> xlf؟

هل هناك أي خيارات لـ ng-xi18n حول موقع الاستخراج؟

ليس في الوقت الحالي ، يمكنك إنشاء مشكلة إذا لزم الأمر

سيتم تحليل ملف xlf تلقائيًا في النهاية

ليس عليك القيام بأي شيء يدويًا.
يستخدم ng-xi18n للاستخراج ،
ngc للدمج.

محرر المستندات متأخر في الوقت الحالي ولكن ocombe يعمل عليه.

بالعودة من العطل: د

أي ديف ، ما أيام العطل؟

شكرًا جزيلاً ocombe و vicb على الاستجابة السريعة. أنا أتطلع حقًا إلى المستندات. استمروا في العمل الممتاز :)

@ vicb طيب ، سأفعل. أعتقد أن هاتين مسألتان منفصلتان: أحدهما يدعم العديد من موفري الترجمة (ربما على مستوى NgModule؟) ، والآخر يشير إلى ملفات ngfactory.ts الخارجية المترجمة في ngc. سأفتح طلب ميزة لدعم ترجمات متعددة. تعد مشكلة AOT مع ngfactories التي يتم شحنها في npms بمثابة تحسين لوقت التطوير.
شكرا!

من خلال ما يمكنني رؤيته في نموذج i18n الخاص بـ StephenFluin ، تتم الترجمة في وقت تمهيد التطبيق. أحتاج إلى أن أكون قادرًا على تغيير اللغة في أي وقت أثناء تشغيل التطبيق الذي يبدو أن هذا الأسلوب لا يسمح به. هل هناك أي آلية أخرى ، حالية أو مستقبلية ، من شأنها أن تسمح بتغيير لغة التطبيق ديناميكيًا في وقت التشغيل.

ckemmler مثل vicb المذكور أعلاه في هذا الموضوع (https://github.com/angular/angular/issues/9104#issuecomment-229975293) ، يلزم إعادة تشغيل التطبيق لتغيير اللغة ، حيث يقوم المترجم بتضمين السلاسل المترجمة إلى ngfactories / رمز القالب المترجم.

وهذا منطقي ، عندما يغير المستخدم اللغة لأنه لا يفهم اللغة الحالية ، لذا لا ينبغي أن تكون إعادة التحميل مشكلة كبيرة.
من المفترض أيضًا أن تكتشف اللغة لتطبيقها بناءً على لغة متصفح المستخدم ، في معظم الحالات يجب أن يحصل المستخدم على اللغة الصحيحة عند التحميل الأول

شكرا paumayr. آسف لم أر ذلك. هل حقا؟ أتفهم أن الأقلمة يمكن أن تكون صعبة في بعض الأحيان ولكن الاضطرار إلى بدء تشغيل التطبيق من جديد هو نوع من التعطيل للصفقة ، ألا تعتقد ذلك؟ وبالتأكيد ليس هذا النوع من السلوك الذي اعتاد الناس عليه أيضًا من استخدام مواقع الويب. من المؤكد أن Angular يتعلق بالتطبيقات ، وليس مواقع الويب ، ولكن لا يزال: معظم تطبيقات الويب في الوقت الحاضر لا يمكن تمييزها عن صفحات الويب على أي حال ، كما أن مطالبة المستخدم بفعل شيء مزعج مثل إعادة تشغيل التطبيق فقط لتغيير اللغة أمر غير مقبول من منظور UX ، على الأقل في كتابي.
أعني: تخيل موقعًا إلكترونيًا للسفر حيث تعتقد أنك ستفهم كل شيء جيدًا باستخدام أي لغة نشطة في الموقع الحالي ، ولكن بعد اجتياز نموذج ثلاثي الأبعاد الخاص بك ، ستجد أنك بحاجة إلى جملة مطبوعة دقيقة معينة بلغتك الأم و حية! عليك "إعادة تشغيل التطبيق" ، اقرأ -> بدء كل شيء من الصفر مرة أخرى؟

يمكنك أيضًا بعد ذلك توضيح ما تعنيه عبارة "برنامج التحويل البرمجي لوقت التشغيل" في أعلى مشاركة (ضمن "الميزات المخططة لـ 2.0:")؟ شكرا!

إعادة تحميل التطبيق لا يعني البدء من البداية ، يمكنك الاحتفاظ بنفس عنوان url وإعادة التحميل في نفس الحالة بالضبط

ocombe أنت على حق :-)

ckemmler أعتقد أن مثال "صفحة النموذج الثالثة" الخاص بك هو شيء تعلمه المستخدمون بشق الأنفس في السنوات القليلة الماضية: لا تقوم فقط بتبديل اللغة ، لأنها قد تفقد حالتك ... ومن الأفضل أن تسرع قبل الجلسة التي تستغرق 20 دقيقة انتهت المهلة ... لذلك لا ، هذه ليست الصفقة بالنسبة لي. ما يقلقني قليلاً هو تخصيص وقت لجميع اللغات (مكالمة ngc لكل ثقافة).

شيء آخر ، أرى أن ng-xi18n يُذكر في أماكن قليلة. أين يتم توثيق استخدامه؟ لقد بحثت عنه في Google ولكن لم أجد شيئًا.

ckemmler أعتقد أنه لا يزال قيد

paumayr لا ينبغي أن يضيف الكثير لاستخراج سلاسل النص ، ليس لدي أي معيار ولكن يبدو أنه أسرع من tsc البسيط
ckemmler الآن في أي مكان حتى الآن ، يجب توثيقه قريبًا (إذا كان بإمكاني العثور على الوقت لإنهاء المستندات: D)

ocombe أين سنجد الوثائق بمجرد الانتهاء؟ هل يمكن أن نتوقع ظهوره في angular.io؟ لأنني أتحقق من المستندات يوميًا ، لذلك لا يتعين علي جلب المعلومات من القنوات الأخرى سواء تم إصدارها أم لا

نعم سيكون على angular.io ، سأضيف رسالة هنا بمجرد توفرها

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

شكرا !

christiandreherfankckemmlermarcaljdagerberesinek بلدي PR عن الوثائق المتعلقة I18N متاحة هنا: https://github.com/angular/angular.io/pull/2309
⚠️ لا تزال مراجعة للعلاقات العامة معلقة وسيتغير المحتوى ، ولكن إذا كنت تحتاج حقًا إلى المستند الآن ، فيمكنك قراءته

ocombe شكرًا جزيلاً لك على

كلا ليس كذلك.

استخدم gitter و StackOverflow

تعد القدرة على تغيير اللغات دون إعادة التحميل أمرًا بالغ الأهمية لاستخدام i18n في AngularJS. إعادة التحميل ليس Angularonic. يتكون UX بالكامل في Angular من صفحة واحدة. تطبيق i18n الحالي (مع إعادة التحميل) يخالف مبدأ SPA.

نرحب بالمساهمات!

anderflash أنا لا أتفق حقًا مع

لا تزال هناك بعض التطبيقات (ng2-translate، ng2-i18next to بدرجة أقل) بناءً على التوجيهات القادرة على تغيير اللغة في وقت التشغيل. ولكن هذا له تكلفة حقيقية عند التنفيذ ، لأنه يجب التحقق من اللغة في كل دورة تغيير (بقدر ما أستطيع فهم)

يمكنني رؤية تطبيق i18n هذا كطريقة ثابتة للتعامل مع الترجمات. لا أستطيع رؤية الكثير من المواقف التي يرغب فيها المستخدم في تغيير اللغة أثناء استخدام التطبيق. الشيء المهم بالنسبة لي هو اكتشاف اللغة في وقت التمهيد (أو حتى التجميع): يجب ألا يضطر المستخدم إلى تغيير اللغة بسبب اختيار مبدئي خاطئ.

anderflash أنا متأكد من أن الجميع يرغبون في رؤية تطبيق (ويب أو غير ذلك) يتم تحديثه فورًا عند تغيير اللغة ، دون إعادة تحميل الصفحة / إعادة تشغيل التطبيق. قمت بتضمينها (ربما طلبت ذلك بنفسي في وقت ما ، لست متأكدًا). لكن كلما فكرت في الأمر وكلما نظرت حولي ، أدركت أنه ليس ممكنًا وأميل إلى الاتفاق مع بقية العالم :)
إذا فعل المستخدم 1000 شيء في تطبيقك ، واحد فقط منها هو "تغيير اللغة" ، فإننا نفضل الحصول على أقصى أداء على 999 شيئًا آخر دون التضحية بأي جزء من الأداء لهذا الشيء الأول.

حتى لو تجاهلنا تطوير "التكلفة" ... إذا كان هناك أي جانب سلبي في الأداء لذلك ، فعلينا حقًا تقييم الأشياء:

  1. كم مرة يحتاج المستخدم إلى تغيير اللغة؟ ... أضع أموالي مرة واحدة على الأكثر ، إذا لم يقم المطور بنفسه / بنفسها بتثبيت أموالي من البداية! ولكن حتى لو كنت مخطئًا هنا (بنسبة 1) ، ما زلت لا أستطيع تخيل حالة يحتاج فيها المستخدم إلى التغيير ذهابًا وإيابًا بين اللغات.
  2. في كثير من الأحيان ، في التطبيق ، سيكون لديك أيضًا محتوى من الخادم. لذا ، فإن تغيير اللغة يعني أيضًا تحديث المحتوى من جانبك من الأشياء. في هذه الحالة ، حتى لو كان حل Angular's i18n سيوفر ذلك ، عندما يتعلق الأمر بجانبي (تحديث المحتوى الذي تم تسليمه بالفعل من الخادم) ، سأخبر العميل بالتأكيد أننا بحاجة إلى إعادة تحميل التطبيق :) إما ذلك ، أو قد يقول العملاء أنفسهم "حسنًا ... فقط أعد تحميل الصفحة" بعد أن أبلغهم بفرق التكلفة.

ألق نظرة أيضًا على التطبيقات الأصلية (iOS ، Android ، Windows) التي تستخدم i18n. حتى مع ذلك ، يجب إعادة تشغيل التطبيق عادةً بعد تغيير اللغة (ما لم يكن تطبيقًا بسيطًا جدًا). تكاليف "تغيير اللغة الحية" باهظة جدًا في معظم الحالات (سواء من ناحية الأداء أو التطوير)

يبدو من المثير للاهتمام إلقاء نظرة على طريقة Android للتعامل مع مثل هذه الحالات.
في الواقع ، تطبيقات Android عبارة عن أنشطة منفصلة (مكونات) يمكن إعادة تحميلها في ظروف معينة: تدوير الشاشة أو ... تغيير اللغة.

في هذه الحالات ، يتم إعادة إنشاء كل النشاط من البداية ، بمساعدة البيانات المخزنة مؤقتًا بواسطة النشاط تحسباً لهذا الحدث.

لإجراء مقارنة ، يبدو من المقبول بالنسبة لي أن أتعامل مع الحدث نفسه بنفس الطريقة. ويبدو أنه من الممكن بمساعدة جهاز التوجيه وبعض ذاكرة التخزين المؤقت الأخرى للبيانات (localStorage؟) أن تتمكن من إعادة تشغيل التطبيق دون فقد السياق.

تضمين التغريدة

سيحتاج المستخدم إلى التغيير ذهابًا وإيابًا بين اللغات.

في هذه الحالة ، سيكون من الأسهل فتح علامتي تبويب (واحدة لكل لغة)

آسف vicb لتعليق آخر ...

المزايا موضحة هنا:
https://github.com/IdeaBlade/angular.io/blob/b3e44c88dd8cd6b37da64e56d275e058314922fd/public/docs/ts/latest/guide/i18n.jade#L67

تتمثل إحدى تجربتي الإضافية في أن خدمات الجهات الخارجية مثل Google Maps API ، ومكونات FB الإضافية لا يمكن تغييرها في وقت التشغيل ، أو بدون عقبات مثل إعادة تحميل نصوص JS وما إلى ذلك ، لذا فإن إعادة تحميل الصفحة ضرورية في الغالب وسهلة.

نعم ، الجانب السلبي هو ضرورة دعم جانب الخادم ...

christiandreherfankckemmlermarcaljdagerberesinek كان كتاب طبخ للI18N الإفراج عن angular.io: https://angular.io/docs/ts/latest/cookbook/i18n.html

ocombe أنا جديد على الويب تعيد تحميل التطبيق في وقت التشغيل؟

هل توجد أي خطط لجعل ng-xi18n يعمل لوحدات ES6 ، حتى الآن لم أحصل إلا على message.xlf "فارغ"؟

آسف ولكن كيف تفعل هذا؟ يقول كتاب الطبخ أنه يجب عليك نسخ الملفات يدويًا ...
https://github.com/angular/angular/issues/9104#issuecomment -245337147

yandreiy أعتقد أن هذا غير ممكن في الوقت الحالي ، فقط اقرأ بعض التعليقات أعلاه ؛)
select هل i18n في عناصرك ؟ سيتم استخراج النصوص ذات العلامات فقط!

ملاحظة: لقد كتبت منشور مدونة حول

لدي وحدتان: وحدة تطبيقي الرئيسية AppModule و SecondModule التي أستوردها مباشرة في AppModule (لذا فهي ليست وحدة محملة بطيئة - إذا كان ذلك سيؤدي إلى أي منها الاختلاف ، لكنني لا أعتقد أنه يفعل ذلك).

في وحدة التطبيق ، أريد استخدام مكون من SecondModule ، لذا في SecondModule لدي:

exports: [ SomeComponent ]

(لا معنى لإنشاء وحدة مشتركة لذلك ، بالإضافة إلى أنني لست متأكدًا من أنها ستصلح هذا ، على الرغم من أنني لم أحاول).

الآن ، SomeComponent متاح للاستخدام في أي مكان في أي قالب لأي مكون من AppModule .
لكن تشغيل ./node_modules/.bin/ng-xi18n -p src/ فشل مع: Cannot determine the module for component SomeComponent!

هذا هو السجل الكامل:

$ ./node_modules/.bin/ng-xi18n -p src/
Error: Cannot determine the module for component SomeComponent!
    at D:\wamp\www\bs\pdp.ng2\node_modules\@angular\compiler-cli\src\extract_i18n.js:101:27
    at Array.map (native)
    at D:\wamp\www\bs\pdp.ng2\node_modules\@angular\compiler-cli\src\extract_i18n.js:97:52
    at Array.map (native)
    at Extractor.extract (D:\wamp\www\bs\pdp.ng2\node_modules\@angular\compiler-cli\src\extract_i18n.js:95:28)
    at extract (D:\wamp\www\bs\pdp.ng2\node_modules\@angular\compiler-cli\src\extract_i18n.js:16:35)
    at Object.main (D:\wamp\www\bs\pdp.ng2\node_modules\@angular\tsc-wrapped\src\main.js:30:16)
    at Object.<anonymous> (D:\wamp\www\bs\pdp.ng2\node_modules\@angular\compiler-cli\src\extract_i18n.js:160:9)
    at Module._compile (module.js:556:32)
    at Object.Module._extensions..js (module.js:565:10)
Extraction failed

هل يجب أن أفتح مشكلة لهذا ، هل هي خلل؟ أو هل أحتاج إلى نهج مختلف هنا؟

لقد قمت بتلخيص سير العمل التلقائي الخاص بنا لـ i18n على مدونتي
يقوم بكل شيء تلقائيًا ، مثل نسخ الملفات والدمج مع الترجمات الحالية وما إلى ذلك.
أتمنى أن يساعدك هذا.

MrCroft وجود نفس المشكلة بالضبط ...

MrCroft @ spock123 عندما يكون لديك مشكلة يرجى إنشاء بطاقة جديدة. أولاً ، أنت تلوث هذا ومن ثم لا ننتبه.

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

vicb لقد كنت أقرأ جميع مستندات i18n وأنا متحمس جدًا لاتجاه AOT.

شيء واحد لا يمكنني العثور عليه الآن هو ترجمة نص السمة. فمثلا

<img src="icon.png" alt="This Text should be Translated!" />

هل فاتني هذا للتو في الوثائق ، أم ينبغي أن أفتح تذكرة حول هذا؟

شكرا.

martinmcwhorter أعتقد أنه عليك فقط إضافة سمة i18n-alt

actimeo يبدو أن هذا العمل. لقد حاولت مع
<input type="text" i18n-placeholder placeholder="Who do you want to find?"/>

هذا موثق ... في علاقات عامة معلقة https://github.com/angular/angular.io/pull/2740

سأدفع لدمجها قريبًا /

لا نخطط لتقديم أي دعم لعناوين URL المترجمة حتى انتهاء النهائي. كانت لدينا بعض الأفكار حول طرق القيام بذلك بعد ذلك ، لكننا لم نتخذ أي قرارات.

أي تقدم في هذا؟ هناك حاجة أيضًا إلى طريقة للارتباط بهذه المسارات المترجمة.

مرحبًا يا رفاق ، يبدو أنه مع Angular i18n يمكننا ترجمة النصوص في العروض فقط. ولكن ماذا عن الرسائل المضمنة في الكود؟ شيء مثل:

throw new Error('This request has failed')

كيف يمكنني ترجمة هذا؟

أفترض أنك قصدت رسالة الخطأ للمستخدم في العرض. في هذا
تتضمن الحالة رمزًا مع استثناء طرحك وقم بتعيين هذا الرمز إلى ملف
رسالة في قالب مكون معالج الأخطاء.

يوم الاثنين ، 12 ديسمبر 2016 ، الساعة 15:04 صباحًا ، دانييل غيدولي ، [email protected]
كتب:

مرحبًا يا شباب ، يبدو أنه مع Angular i18n يمكننا ترجمة النصوص بتنسيق
الآراء. ولكن ماذا عن الرسائل المضمنة في الكود؟ شيء مثل:

طرح خطأ جديد ("فشل هذا الطلب")

كيف يمكنني ترجمة هذا؟

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/angular/angular/issues/9104#issuecomment-266453448 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/ABI5-kyVvBnng0jPTwvP3ZdHzumtHERYks5rHWKQgaJpZM4IxhKY
.

نعم ، ولكن ليس فقط رسائل الخطأ. أي سلسلة يمكن ترميزها بشكل ثابت في الشفرة وليست موجودة في العرض. تحتوي مكتبة ngTranslate القديمة لـ Angular1 على خدمة $translate يمكنك استخدامها لترجمة سلسلة من وحدة تحكم ثم استخدامها لاحقًا. هل يجب علي نقل جميع الرسائل في العرض؟ أو ستكون هناك طريقة أخرى؟

تتمثل الخطة في أن تكون قادرًا على ترجمة السلاسل في TS - هناك مشكلة في تتبع الميزة في GH.

vicb هل يمكنك نشر ارتباط من فضلك؟

ghidoz لقد واجهت نفس المشكلة في العمل وقمت بترميز حل بديل إلى حد ما:

  • هناك مكون إعلام يتعامل مع آلية العرض بأكملها.
  • لقد أضفت مثيل إعلام لكل حالة خطأ / تحذير / معلومات يدعمها التطبيق
  • يحتوي كل مثيل على النصوص المترجمة المناسبة بالداخل ويتم تشغيله باستخدام * ngIf و / أو * ngSwitch ، اعتمادًا على ما يناسبه بشكل أفضل

بفضل @ db6edr ، حصلت على هذه النقطة. لكن هذا ليس ممكنًا دائمًا. على سبيل المثال ، أحتاج إلى ترجمة إشعارات الويب أيضًا ، التي لا تحتوي على طريقة عرض يمكنني من خلالها وضع جميع النصوص الممكنة.

vicb أي خارطة طريق لذلك؟ شكرا

feloy في وقت سابق ، كتبت "الشيء المهم بالنسبة لي هو اكتشاف اللغة في bootstrap" لذا إذا كانت اللغة هي كندا ، فهل تقوم بتحميل اللغة الإنجليزية أو الفرنسية ؛ إذا كانت اللغة هي بلجيكا ، فهل تقوم بتحميل اللغة الهولندية أو الفرنسية أو الألمانية ، وإذا كان المستخدم في جنوب تكساس ، فهل تقوم بتحميل اللغة الإنجليزية أو الإسبانية؟ أنا لا أذهب حتى إلى سويسرا أو الهند ، أو أتحدث عن المهاجرين في العديد من البلدان - أتمنى أن تفهم هذه النقطة. هناك حاجة حقيقية للمستخدم لتغيير اللغة بعد تحميل التطبيق. يجب أن يدعم Angular 2 هذه الحاجة إذا كنت تتوقع أن يتم استخدامه على مستوى العالم. بمجرد أن تتغير اللغة ، لا أرى حاجة للتحقق منها في كل دورة تحديث. أعط المستخدم رسالة مفادها أن تغيير اللغة "سيستغرق لحظة" عند حدوث التغيير. عندما يغادر المستخدم التطبيق ، يجب تخزين هذه اللغة في ملف تعريف ارتباط ويجب تحميلها بهذه اللغة في المرة القادمة. هذا هو أفضل تخمين حسب تفضيل المستخدم.

مرحبًا mLaird أنا أتحدث عن اللغات ، ولا توجد بلدان ، مثلك تمامًا. يعطي كل متصفح إمكانية في تفضيلاته لتحديد اللغة المفضلة للمستخدم. لذلك إذا حدد مستخدم texan لغته المفضلة على أنها es_US ، فسيحصل على واجهة مستخدم إسبانية كما هو متوقع.

أي خارطة طريق لذلك؟ شكرا

سأحاول إلقاء نظرة على ما هو مطلوب ه / س هذا الأسبوع وتقديم خطة.

Philippe MARTIN نعم ، هذا ممكن ، لكنك تتعامل مع المزيد
العملاء الأذكياء من الناحية الفنية مما أنا عليه ؛-) ثم هناك عابر
المستخدمون - المستخدمون في المكتبات ، المستخدمون في منزل الأصدقاء ، المستخدمون في المطار
kiosk ، وما إلى ذلك ، وما إلى ذلك. غالبًا ما يكون لديهم تفضيل لغة مختلف عن
إعداد المتصفح.

الثلاثاء، 13 ديسمبر 2016 في 15:06، فيكتور Berchet [email protected]
كتب:

أي خارطة طريق لذلك؟ شكرا

سأحاول إلقاء نظرة على ما هو مطلوب e / o هذا الأسبوع وإحضار ملف
خطة.

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/angular/angular/issues/9104#issuecomment-266846439 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/ADDSb05rHEK1RipS1btty5TFsQAwiE1Mks5rHvqygaJpZM4IxhKY
.

-

مايك ليرد

12 Arbor Creek Drive، Pittsford، New York 14534
[email protected]

"... تذكر الجانبين أن الكياسة ليست علامة ضعف ،
والصدق دائما يخضع للإثبات. دعونا لا نتفاوض أبدا للخروج من
الخوف ، لكن دعونا لا نخاف أبدًا من التفاوض ". - جون ف. كينيدي

mLaird الرجاء إلقاء نظرة على بلدي تنفيذ. يمكنك تجاوز اللغة الافتراضية عن طريق إعادة تشغيل التطبيق باللغة الجديدة كوسيطة. هذا يبدو معقولا بالنسبة لي.
https://github.com/actimeo/simmage-ui (انظر العرض التوضيحي المباشر)

وجدت مشكلة في صيغ الجمع واخترت: هل أنت متأكد من أنها نُفّذت بشكل صحيح؟

إذا كان لدي سلسلة عادية فقط ، يمكنني تصديرها باستخدام الأمر ng-xi18n ، لكن إذا أضفت سلسلة بها صيغ الجمع أو حددتها ، فلن تعمل.

استخدام

<span i18n>{user.receivedReports, plural, =0 {No spam/scam reports} =1 {One spam/scam report} other {# spam/scam reports}}</span>

و

<span i18n>{currentConversation.user.online, select, true {Online} false {Offline}}</span>

أحصل على العديد من أخطاء التحليل مثل هذا:

Unexpected closing tag "li" ("plural, =0 {No spam/scam reports} =1 {One spam/scam report} other {# spam/scam reports}}</span>
    [ERROR ->]</li>

باستخدام صيغة التعليقات لم أحصل على خطأ أثناء الاستخراج:

<!--i18n: select test-->
{user.online, select, true {Online} false {Offline}}
<!--/i18n-->
<!--i18n: plural test-->
{user.receivedReports, plural, =0 {No spam/scam reports} =1 {One spam/scam report} other {# spam/scam reports}}
<!--/i18n-->



md5-b6643fed0ae53c51b5e311fa11670548



<trans-unit id="2b10577df0a3d78b7e65c07d5760524f881f390a" datatype="html">
    <source>
        <x id="ICU"/>
    </source>
    <target/>
    <note priority="1" from="description">plural test</note>
</trans-unit>

<trans-unit id="e61681024eadd7f72e33f053f04c128910c419a2" datatype="html">
    <source>
        <x id="ICU"/>
    </source>
    <target/>
    <note priority="1" from="description">select test</note>
</trans-unit>



md5-1ed6d3f87b24b5bd78093a4ca13431c4



<msg id="3c8aef599bb96e303600aa44617acd0a7d602147">{user.receivedReports, plural, =0 {No spam/scam reports} =1 {One spam/scam report} other {# spam/scam reports} }</msg>
<msg id="06fe711b55463e3ee28d72239d77e9a50da62d86">{currentConversation.user.online, select, true {Online} false {Offline} }</msg> 

كيف تترجم التاريخ / الوقت؟

يتم ترجمة التاريخ باستخدام أنبوب التاريخ

في الأربعاء ، 4 كانون الثاني (يناير) 2017 ، الساعة 08:12 بتوقيت جرينتش 99998 ، كتب [email protected] :

كيف تترجم التاريخ / الوقت؟

-
أنت تتلقى هذا لأنه تم ذكرك.
قم بالرد على هذا البريد الإلكتروني مباشرة ، وقم بعرضه على GitHub
https://github.com/angular/angular/issues/9104#issuecomment-270315783 ،
أو كتم الخيط
https://github.com/notifications/unsubscribe-auth/ABI5-gHZiWOREPwucdqwRhVIs9xwMgorks5rO1RngaJpZM4IxhKY
.

feloy ،

dietergeerts هذا ممكن فقط مع JIT ، وليس مع AOT.

rolandoldengarm ، من الممكن أيضًا مع AOT إذا قمت بتحميل ترجماتك عند تحميل التطبيق. أستخدم حاليًا شيئًا ما بين ngx-translate و i18n الرسمي ، بمعنى أننا نستخدم الأنابيب للحصول على الترجمات (الترجمات الخالصة) ، لكننا نحمل لغة واحدة فقط عند بدء التشغيل ، ويتطلب تبديل اللغة إعادة تشغيل التطبيق (إذا كان لدينا فقط إعادة تحميل التوجيه ، حيث يتم إعداد i18n في أحد حلول الجذر)

تضمين التغريدة

سأحاول إلقاء نظرة على ما هو مطلوب ه / س هذا الأسبوع وتقديم خطة.

هل لديك أي تحديثات على خارطة الطريق؟ على وجه التحديد لتطبيق i18n للترجمات خارج القوالب.

أنا مهتم أيضًا بالقدرة على ترجمة الجمل في TypeScript. أي ETA على هذا؟

@ Thomas- Kuipersthelgevold أعمل عليه ، وسيكون متاحًا في 4.1 أو 4.2 (على الأرجح)

تضمين التغريدة
كيفية التعامل مع نص ثابت في الاستيفاء ، والذي لا يمكنه استخدام ترجمة محددة.

<div i18n>{{exercise._desc ? exercise._desc : 'empty'}}</div>

لا يمكن ترجمة السلسلة "فارغة"

@ rayer4u ، هذا ليس موضوع هذه المشكلة ، بالنسبة لأسئلة الدعم ، يجب عليك استخدام stackoverflow أو gitter.
سأجيب على هذا السؤال على أي حال ، لكن لا تسأل المزيد من الأسئلة هنا غير المتعلقة بخطط i18n المستقبلية من فضلك.

الإجابة هي: لا يمكنك فعل ذلك ، فالترجمات الديناميكية غير مدعومة من Angular i18n لأنها تعمل في وقت التجميع أو الإنشاء ، وليس في وقت التشغيل.

خارج الموضوع: أعتذر
@ rayer4u الحل هو استخدام الترجمات الثابتة:

<div *ngIf="exercise?._desc">{{ exercise?._desc }}</div>
<div *ngIf="!exercise?._desc" i18n>empty</div>

ocombe أعتذر عن موضوع خارج ، لا حاجة للرد. لدي هذه الحاجة فقط ولا أجد أي طريقة سريعة لمناقشتها. أعتقد أن هذا قد يكون معنيًا بخطة i18n الزاوية. نظرًا لأن خطة Angular i18n لا تتعامل مع الاستيفاء ، فإن العلامة الإضافية / البحث / الاستبدال هي حل أفضل لوقت إنشاء i18n بالنسبة لي الآن.
martinmcwhorter شكرا

ربما هذه فكرة سيئة ولكن لا يمكن إضافة الزاوية تلقائيًا @@id في سمات i18n الخاصة بنا عند الاستخراج لأول مرة؟

لا ، لأنه سيتعين علينا الحفاظ على هذا عند تعديل الشفرة.
لنفترض أن لديك كتلتين من كود i18n متماثلتين ، نضيف المعرفات ، ثم غيرت إحداهما ، لا تتطابق المعرفات مما يعني أن الاستخراج التالي سيتخطى تلك ...

أؤكد أنها فكرة سيئة ، هل يمكنك أن تشرح كيف تعرف الزاوية أنها تنسب نفس المعرف إلى السلسلة عندما نستخرج مرارًا وتكرارًا ، وكيف يحتفظون بنفس المعرف على السلسلة. قوي جدا لكنني لا أفهم: s

تضمين التغريدة

نحن الآن في الإصدار 4 لذا أقوم بإغلاق هذه المشكلة ، يرجى المتابعة في # 16477 لخططنا للإصدار 4 وما بعده.

تم قفل هذه المشكلة تلقائيًا بسبب عدم النشاط.
يرجى تقديم مشكلة جديدة إذا كنت تواجه مشكلة مشابهة أو ذات صلة.

اقرأ المزيد حول سياسة قفل المحادثة التلقائي .

_تم تنفيذ هذا الإجراء تلقائيًا بواسطة روبوت.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات