Rrule: وثائق i18n من toText

تم إنشاؤها على ١٧ أبريل ٢٠١٣  ·  15تعليقات  ·  مصدر: jakubroztocil/rrule

الرجاء إضافة وثائق أفضل حول i18n لطريقة toText() .

  1. ما معنى المعلمة today ؟
  2. ما هي القيم التي تم تمريرها إلى gettext ؟
  3. كيف أقوم بترجمة الأشياء بالفعل؟ يمكنني تغيير dayNames و monthNames ، لكن هذا جزء منه فقط.

شكرا لخلق هذا lib!

enhancement

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

أي تحديثات؟ كيف تترجم النص إلى لغة أخرى؟

ال 15 كومينتر

ما معنى معلمة اليوم؟

لم يتم استخدامه فعليًا حتى الآن ، يمكنك فقط تمرير null .

ما هي القيم التي يتم تمريرها إلى gettext؟
كيف أقوم بترجمة الأشياء بالفعل؟ أنا قادر على تغيير dayNames و monthNames ، ولكن هذا فقط جزء منها.

واجهة برمجة التطبيقات ليست لطيفة جدًا.

أنت بحاجة إلى إنشاء تعريف لغة مع العناصر ذات الصلة بالتاريخ. اللغة الإنجليزية الافتراضية هنا . tokens مطلوبة فقط مقابل RRule.fromText .

يحصل gettext على السلسلة الإنجليزية (يمكنك معرفة السلاسل المستخدمة هنا ).

مثال أولي (تحتاج إلى النسخة الرئيسية الحالية ، النسخ الأقدم مخزنة مؤقتًا للإخراج toText ):

// Date-related translations
var portuguese = {
    dayNames: [
        "Domingo",
        "Segunda-Feira",
        "Terça-feira",
        "Quarta-feira",
        "Quinta-feira",
        "Sexta-feira",
        "Sábado"
    ],
    monthNames: [
        "Janeiro",
        "Fevereiro",
        // …
    ]
    // `tokens` are only needed for `RRule.fromText`

};


// Strings
var portugueseStrings = {
    'every': 'cada',
    'until': 'até',
    'day': 'dia',
    'days': 'dias',
    'week': 'semana',
    'weeks': 'semanas',
    'on': 'em'
    // …
};

var gettext =  function(id) {
    // Return pt. string, default to english.
    return portugueseStrings[id] || id;
};


var rule = new RRule(RRule.WEEKLY, {
    interval: 5,
    byweekday: [RRule.MO, RRule.FR],
    dtstart: new Date(2012, 1, 1, 10, 30),
    until: new Date(2012, 12, 31)
});

console.log(rule.toText());
// => every 5 weeks on Monday, Friday until January 31, 2013

console.log(rule.toText(null, gettext, portuguese));
// => cada 5 semanas em Segunda-Feira, Sexta-feira até Janeiro 31, 2013

TODO: قم بتحسين وتوثيق API (ربما تكون فئة Language ).

واجهة برمجة التطبيقات ليست لطيفة جدًا.

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

singular: 'every week on {{dayNames}}',
plural: 'every {{numWeeks}} weeks on {{dayNames}}'

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

صادفت للتو https://github.com/airbnb/polyglot.js ، ولكن هناك العديد من الحلول الأخرى لـ i18n

بعض الشيء الذي عضني للتو:

في اللغة الإنجليزية "كل أسبوع" و "كل شهر". في الألمانية هي "jede Woche" و "jeden Monat". لاحظ "n". لا يمكنني ترجمة كلمة "كل" فقط ، فلن تعمل.

شيء مشابه مع تمرير "st" أو "rd" إلى gettext. لا معنى له.

أي أخبار أو خطط؟ الآن بعد أن بدأت في استخدام DTSTART و UNTIL لا يمكنني استخدام طريقة toText بعد الآن. قبل ذلك كنت قادرًا على اختراق التطبيق الحالي.

شيء آخر للقائمة: تنسيقات التاريخ. أريد DD.MM.YYYY وليس MMMM DD, YYYY .

أنا لا أفهم. في ملف html واحد ، لدي هذا الكود مع أحدث إصدار (2.0).

[الشفرة]

اختبارات Trad

[/الشفرة]
إنه لا يعمل مع الخطأ:

TypeError: _ غير محدد
الإعدادات الافتراضية var = _.clone (RRule.DEFAULT_OPTIONS) ؛
في القاعدة في السطر 463.

أين أنا مخطئ؟

أنت بحاجة إلى مكتبة أخرى تسمى Undcorejs. أنا على هاتفي وإلا كنت سأعطيك رابطًا.

في 30 تشرين الأول (أكتوبر) 2013 ، الساعة 11:54 مساءً ، كتب elecoest [email protected] :

أنا لا أفهم. في ملف html واحد ، لدي هذا الكود مع أحدث إصدار (2.0).

اختبارات Trad
إنه لا يعمل مع الخطأ:

TypeError: _ غير محدد

الإعدادات الافتراضية var = .clone (RRule.DEFAULTOPTIONS) ؛
في القاعدة في السطر 463.

أين أنا مخطئ؟

-
قم بالرد على هذا البريد الإلكتروني مباشرة أو قم بعرضه على GitHub.

حسنًا ، لقد وضعت undesrcore.js في المركز الثالث ...
لقد قمت بوضع تسطير سفلي في المركز الأول.
الآن خطأ i'vva
TypeError: 2 ليس كائنًا
إرجاع result.call (this، func.apply (_، args)) ؛
في شرطة سفلية. js

آسف ولكن هذا الطريق هو أكيد للجميع؟

لا أحد لديه هذا الخطأ من قبل؟

شكرا جزيلا لمساعدتكم.

ما معنى معلمة اليوم؟

لم يتم استخدامه فعليًا حتى الآن ، يمكنك فقط تمرير null .

ما هي القيم التي يتم تمريرها إلى gettext؟
كيف أقوم بترجمة الأشياء بالفعل؟ أنا قادر على تغيير dayNames و monthNames ، ولكن هذا فقط جزء منها.

واجهة برمجة التطبيقات ليست لطيفة جدًا.

أنت بحاجة إلى إنشاء تعريف لغة مع العناصر ذات الصلة بالتاريخ. اللغة الإنجليزية الافتراضية هنا . tokens مطلوبة فقط مقابل RRule.fromText .

يحصل gettext على السلسلة الإنجليزية (يمكنك معرفة السلاسل المستخدمة هنا ).

مثال أولي (تحتاج إلى النسخة الرئيسية الحالية ، النسخ الأقدم مخزنة مؤقتًا للإخراج toText ):

// Date-related translations
var portuguese = {
    dayNames: [
        "Domingo",
        "Segunda-Feira",
        "Terça-feira",
        "Quarta-feira",
        "Quinta-feira",
        "Sexta-feira",
        "Sábado"
    ],
    monthNames: [
        "Janeiro",
        "Fevereiro",
        // …
    ]
    // `tokens` are only needed for `RRule.fromText`

};


// Strings
var portugueseStrings = {
    'every': 'cada',
    'until': 'até',
    'day': 'dia',
    'days': 'dias',
    'week': 'semana',
    'weeks': 'semanas',
    'on': 'em'
    // …
};

var gettext =  function(id) {
    // Return pt. string, default to english.
    return portugueseStrings[id] || id;
};


var rule = new RRule(RRule.WEEKLY, {
    interval: 5,
    byweekday: [RRule.MO, RRule.FR],
    dtstart: new Date(2012, 1, 1, 10, 30),
    until: new Date(2012, 12, 31)
});

console.log(rule.toText());
// => every 5 weeks on Monday, Friday until January 31, 2013

console.log(rule.toText(null, gettext, portuguese));
// => cada 5 semanas em Segunda-Feira, Sexta-feira até Janeiro 31, 2013

TODO: قم بتحسين وتوثيق API (ربما تكون فئة Language ).

مرحبًا ، أحاول الحصول على i18n للغة الألمانية ، لكن لا يمكنني العثور على السلاسل المستخدمة في "gettext" نظرًا لأن الارتباط معطل. حاولت أن أنظر إلى المصادر لكني تمكنت من العثور عليها أي شيء.

شكرا!

ما معنى معلمة اليوم؟

لم يتم استخدامه فعليًا حتى الآن ، يمكنك فقط تمرير null .

ما هي القيم التي يتم تمريرها إلى gettext؟
كيف أقوم بترجمة الأشياء بالفعل؟ أنا قادر على تغيير dayNames و monthNames ، ولكن هذا فقط جزء منها.

واجهة برمجة التطبيقات ليست لطيفة جدًا.
أنت بحاجة إلى إنشاء تعريف لغة مع العناصر ذات الصلة بالتاريخ. اللغة الإنجليزية الافتراضية هنا . tokens مطلوبة فقط مقابل RRule.fromText .
يحصل gettext على السلسلة الإنجليزية (يمكنك معرفة السلاسل المستخدمة هنا ).
مثال أولي (تحتاج إلى النسخة الرئيسية الحالية ، النسخ الأقدم مخزنة مؤقتًا للإخراج toText ):

// Date-related translations
var portuguese = {
    dayNames: [
        "Domingo",
        "Segunda-Feira",
        "Terça-feira",
        "Quarta-feira",
        "Quinta-feira",
        "Sexta-feira",
        "Sábado"
    ],
    monthNames: [
        "Janeiro",
        "Fevereiro",
        // …
    ]
    // `tokens` are only needed for `RRule.fromText`

};


// Strings
var portugueseStrings = {
    'every': 'cada',
    'until': 'até',
    'day': 'dia',
    'days': 'dias',
    'week': 'semana',
    'weeks': 'semanas',
    'on': 'em'
    // …
};

var gettext =  function(id) {
    // Return pt. string, default to english.
    return portugueseStrings[id] || id;
};


var rule = new RRule(RRule.WEEKLY, {
    interval: 5,
    byweekday: [RRule.MO, RRule.FR],
    dtstart: new Date(2012, 1, 1, 10, 30),
    until: new Date(2012, 12, 31)
});

console.log(rule.toText());
// => every 5 weeks on Monday, Friday until January 31, 2013

console.log(rule.toText(null, gettext, portuguese));
// => cada 5 semanas em Segunda-Feira, Sexta-feira até Janeiro 31, 2013

TODO: قم بتحسين وتوثيق API (ربما تكون فئة Language ).

مرحبًا ، أحاول الحصول على i18n للغة الألمانية ، لكن لا يمكنني العثور على السلاسل المستخدمة في "gettext" نظرًا لأن الارتباط معطل. حاولت أن أنظر إلى المصادر لكني تمكنت من العثور عليها أي شيء.

شكرا!

https://github.com/jakubroztocil/rrule/tree/master/src/nlp

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

const germanStrings = {
    every: 'jedes',
    until: 'bis',
    day: 'Tag',
    days: 'Tage',
    week: 'Woche',
    weeks: 'Wochen',
    on: 'ein',
    in: 'in',
    'on the': 'auf dem',
    for: 'für',
    and: 'und',
    or: 'oder',
    at: 'bei',
    last: 'zuletzt',
    '(~ approximate)': '(~ approximativ)',
    times: 'Zeiten',
    time: 'Zeit',
    minutes: 'Minuten',
    hours: 'Stunden',
    weekdays: 'Wochentage',
    weekday: 'Wochentag',
    months: 'Monate',
    month: 'Monat',
    years: 'Jahre',
    year: 'Jahr'
  };
const RRULE_GERMAN = {
  dayNames: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'],
  monthNames: [
    'Januar',
    'Februar',
    'März',
    'April',
    'Mai',
    'Juni',
    'Juli',
    'August',
    'September',
    'Oktober',
    'November',
    'Dezember'
  ]
};
const gettext = id => {
    return germanStrings[id] || id;
};

const rruleText = rule.toText(id => {
    gettext(id);
}, RRULE_GERMAN);

أي تحديثات؟ كيف تترجم النص إلى لغة أخرى؟

أعتقد أن i18n لهذه المكتبة ، حتى الآن ، معيب بشكل أساسي. اشياء مثل

nth_monthday' => array(
        '1' => 'the 1st',
        '2' => 'the 2nd',
        '3' => 'the 3rd',
        '21' => 'the 21st',
        '22' => 'the 22nd',
        '23' => 'the 23rd',
        '31' => 'the 31st',
        'else' => 'the %{n}th'
    ),

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

تحديث: بعد الزحف إلى الشفرة ، وجدت طريقة لفعل ما أردت ، والتي "حلتها" بالنسبة إلى لغتي. فقط للرجوع إليها في المستقبل ، سأترك هنا قائمة بجميع المفاتيح التي يجب أن تترجمها على طريقة getText التي تنقلها.

 '(~ approximate)'
 'and'
 'at'
 'day'
 'days'
 'every'
 'for'
 'hour'
 'hours'
 'in'
 'last'
 'minutes'
 'month'
 'months'
 'nd'
 'on the'
 'on'
 'or'
 'rd'
 'st'
 'th'
 'the'
 'time'
 'times'
 'until'
 'week'
 'weekday'
 'weekdays'
 'weeks'
 'weeks'
 'year'
 'years'
 'RRule error: Unable to fully convert this rrule to text'

gongAll شكرا ،
باستخدام مثالك ، تمكنت من استخدام i18n ، على النحو التالي:

export const RRuleToText = ({ strRRule }) => {
  const language = {
    dayNames: moment.weekdays(),
    monthNames: moment.months()
  };

  const getText = id => {
    return i18n.t(`vendor.rrule.${id}`, id);
  };

  const dateFormat = (year, month, day) =>
    moment()
      .date(day)
      .year(year)
      .month(month)
      .format("LL");

  return strRRule
    ? capitalize(
        RRule.fromString(strRRule).toText(getText, language, dateFormat)
      )
    : "";
};

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

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

القضايا ذات الصلة

grigio picture grigio  ·  7تعليقات

marcoancona picture marcoancona  ·  22تعليقات

agordeev picture agordeev  ·  16تعليقات

shavenwalrus picture shavenwalrus  ·  7تعليقات

maconfr picture maconfr  ·  6تعليقات