Rrule: Dokumentasi untuk i18n dari toText

Dibuat pada 17 Apr 2013  ·  15Komentar  ·  Sumber: jakubroztocil/rrule

Harap tambahkan dokumentasi yang lebih baik tentang i18n dari metode toText() .

  1. Apa arti dari parameter today ?
  2. Nilai mana yang diteruskan ke gettext ?
  3. Bagaimana cara menerjemahkan barang? Saya dapat mengubah dayNames dan monthNames , tetapi itu hanya sebagian saja.

Terima kasih telah membuat lib ini!

enhancement

Komentar yang paling membantu

Ada pembaruan? Bagaimana cara menerjemahkan teks ke bahasa lain?

Semua 15 komentar

Apa arti dari parameter hari ini?

Ini sebenarnya tidak digunakan sampai sekarang, Anda bisa meneruskan null .

Nilai mana yang diteruskan ke gettext?
Bagaimana cara menerjemahkan barang? Saya dapat mengubah dayNames dan monthNames, tetapi itu hanya sebagian saja.

API tidak terlalu bagus.

Anda perlu membuat definisi bahasa dengan hal-hal terkait tanggal. Bahasa Inggris default ada di sini . tokens hanya diperlukan untuk RRule.fromText .

gettext mendapatkan string bahasa Inggris (Anda dapat melihat string apa yang digunakan di sini ).

Contoh kasar (Anda memerlukan master saat ini, versi lama meng-cache output 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: perbaiki dan dokumentasikan API (mungkin kelas Language akan menyenangkan).

API tidak terlalu bagus.

Hm, ya. Ada sesuatu yang hilang. Karena Anda tidak bisa hanya menerjemahkan kata-kata. Tergantung pada bahasa, urutannya perlu diubah juga, karena mereka memiliki tata bahasa yang berbeda. Sebaliknya harus ada string format seperti

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

Itu hanya contoh kasar. Saya tahu bahwa ada banyak kasus tepi dll. Dan itu mungkin sulit untuk dilakukan dengan benar.

Baru saja menemukan https://github.com/airbnb/polyglot.js , tetapi ada banyak solusi lain untuk i18n

Beberapa hal yang baru saja menggigit saya:

Dalam bahasa Inggris itu "setiap minggu" dan "setiap bulan". Dalam bahasa Jerman itu "jede Woche" dan "jeden Monat". Perhatikan "n". Saya tidak bisa hanya menerjemahkan "setiap", itu tidak akan berhasil.

Hal serupa dengan meneruskan "st" atau "rd" ke gettext. Ini tidak masuk akal.

Ada berita atau rencana? Sekarang saya mulai menggunakan DTSTART dan UNTIL Saya tidak dapat menggunakan metode toText lagi. Sebelum itu saya bisa meretas implementasi saat ini.

Satu hal lagi untuk daftar: Format tanggal. Saya ingin DD.MM.YYYY dan bukan MMMM DD, YYYY .

Saya tidak mengerti. Dalam satu file html saya memiliki kode ini dengan rilis terbaru (2.0).

[kode]

tes perdagangan

[/kode]
Ini tidak berfungsi dengan kesalahan:

TypeError: _ tidak terdefinisi
var default = _.clone(RRule.DEFAULT_OPTIONS);
dalam aturan di baris 463.

Di mana saya salah?

Anda memerlukan perpustakaan lain yang disebut underscorejs. Saya menggunakan ponsel saya jika tidak, saya akan memberi Anda tautan.

Pada 30 Oktober 2013, pukul 23.54, elecoest [email protected] menulis:

Saya tidak mengerti. Dalam satu file html saya memiliki kode ini dengan rilis terbaru (2.0).

tes perdagangan
Ini tidak berfungsi dengan kesalahan:

TypeError: _ tidak terdefinisi

var default = .clone(RRule.DEFAULTOPTIONS);
dalam aturan di baris 463.

Di mana saya salah?


Balas email ini secara langsung atau lihat di GitHub.

ok, saya menempatkan undesrcore.js di posisi ketiga...
Saya telah menempatkan garis bawah.js di posisi pertama.
Sekarang saya salah
TypeError: 2 bukan objek
return result.call(this, func.apply(_, args));
di garis bawah.js

Maaf tapi cara ini ak untuk setiap tubuh?

Tidak ada yang memiliki kesalahan ini sebelumnya?

Terima kasih banyak atas bantuan Anda.

Apa arti dari parameter hari ini?

Ini sebenarnya tidak digunakan sampai sekarang, Anda bisa meneruskan null .

Nilai mana yang diteruskan ke gettext?
Bagaimana cara menerjemahkan barang? Saya dapat mengubah dayNames dan monthNames, tetapi itu hanya sebagian saja.

API tidak terlalu bagus.

Anda perlu membuat definisi bahasa dengan hal-hal terkait tanggal. Bahasa Inggris default ada di sini . tokens hanya diperlukan untuk RRule.fromText .

gettext mendapatkan string bahasa Inggris (Anda dapat melihat string apa yang digunakan di sini ).

Contoh kasar (Anda memerlukan master saat ini, versi lama meng-cache output 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: perbaiki dan dokumentasikan API (mungkin kelas Language akan menyenangkan).

Hai, saya mencoba mendapatkan i18n untuk bahasa Jerman, tetapi saya tidak dapat menemukan string apa yang digunakan dalam "gettext" karena tautannya rusak. Saya mencoba mencari di sumbernya tetapi saya dapat menemukannya apa pun.

Terima kasih!

Apa arti dari parameter hari ini?

Ini sebenarnya tidak digunakan sampai sekarang, Anda bisa meneruskan null .

Nilai mana yang diteruskan ke gettext?
Bagaimana cara menerjemahkan barang? Saya dapat mengubah dayNames dan monthNames, tetapi itu hanya sebagian saja.

API tidak terlalu bagus.
Anda perlu membuat definisi bahasa dengan hal-hal terkait tanggal. Bahasa Inggris default ada di sini . tokens hanya diperlukan untuk RRule.fromText .
gettext mendapatkan string bahasa Inggris (Anda dapat melihat string apa yang digunakan di sini ).
Contoh kasar (Anda memerlukan master saat ini, versi lama meng-cache output 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: perbaiki dan dokumentasikan API (mungkin kelas Language akan menyenangkan).

Hai, saya mencoba mendapatkan i18n untuk bahasa Jerman, tetapi saya tidak dapat menemukan string apa yang digunakan dalam "gettext" karena tautannya rusak. Saya mencoba mencari di sumbernya tetapi saya dapat menemukannya apa pun.

Terima kasih!

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

Akan menyenangkan untuk memiliki beberapa dokumentasi cara menggunakannya. Saya telah menerjemahkan ke dalam bahasa Jerman, tetapi sepertinya salah:

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);

Ada pembaruan? Bagaimana cara menerjemahkan teks ke bahasa lain?

Saya pikir i18n perpustakaan ini, sampai sekarang, pada dasarnya cacat. Hal-hal seperti

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'
    ),

mutlak diperlukan untuk beberapa penggunaan pengalaman pengguna akhir, dalam bahasa yang berbeda. Saya akan merekomendasikan menerapkan logika dalam alternatif ini (seperti yang disebutkan oleh @wakirin dalam posting ini ). Itu benar-benar akan meningkatkan penggunaan perpustakaan ini, karena, pada saat ini, logika ini harus dilakukan secara manual, untuk membuat beberapa logika i18n yang dapat digunakan.

PEMBARUAN: setelah merayapi kode, saya menemukan cara untuk melakukan apa yang saya inginkan, yang, untuk bahasa saya, "menyelesaikannya". Hanya untuk referensi di masa mendatang, saya akan meninggalkan di sini daftar semua kunci yang harus Anda terjemahkan pada metode getText yang Anda teruskan.

 '(~ 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 Terima kasih,
Dengan contoh Anda, saya dapat menggunakan moment.js dan i18n , seperti di bawah ini:

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)
      )
    : "";
};

Apakah akan ada pembaruan tentang masalah ini? Saya harus menerjemahkan ke dalam bahasa Jepang; urutan kata-katanya sangat berbeda, jadi saya tidak tahu bagaimana melanjutkannya ...

Apakah halaman ini membantu?
0 / 5 - 0 peringkat

Masalah terkait

espen picture espen  ·  11Komentar

spurreiter picture spurreiter  ·  3Komentar

agordeev picture agordeev  ·  16Komentar

espen picture espen  ·  10Komentar

zeluspudding picture zeluspudding  ·  11Komentar