Mudlet: Siapkan layanan terjemahan berbasis web untuk Mudlet

Dibuat pada 9 Apr 2017  ·  45Komentar  ·  Sumber: Mudlet/Mudlet

Kami perlu membuatnya sangat mudah bagi orang-orang untuk berkontribusi dalam menerjemahkan Mudlet - itu berarti sesuatu yang berbasis web di mana satu-satunya penghalang hanyalah masuk. Mungkin ada layanan berbasis web yang ada yang dapat menawarkan kami lisensi sumber terbuka untuk mendapatkan pengaturan .

Alternatif yang tersedia:
Launchpad - masa depannya dipertanyakan
Transifex - proyek demo di sini: https://www.transifex.com/mudlet/mudlet/dashboard/

low

Komentar yang paling membantu

Uji coba crowdin teman-teman akan kedaluwarsa dalam 4 hari jadi saya perlu yay/nay untuk itu - kami tampaknya senang dengan itu sejauh ini

Semua 45 komentar

Ada POEditor sebagai integrasi dengan github, yang memungkinkan menerjemahkan XLIFF
file (yang seharusnya didukung oleh ahli bahasa qt). Dan mereka memiliki OS
lisensi.

Pilihan lain adalah Qordoba, yang tampaknya tidak memerlukan biaya apa pun dan secara asli
mendukung file ts.

Tidak pernah menggunakan layanan/aplikasi terjemahan apa pun, jadi saya tidak punya preferensi.

Vadim Peretokin [email protected] schrieb am So., 9. Apr. 2017,
13:14:

Kami perlu membuatnya sangat mudah bagi orang untuk berkontribusi menerjemahkan Mudlet

  • itu berarti sesuatu yang berbasis web di mana satu-satunya penghalang hanyalah masuk.
    Mungkin sudah ada layanan berbasis web yang dapat menawarkan kepada kami
    lisensi sumber terbuka untuk mendapatkan pengaturan.

Alternatif yang tersedia:
Launchpad https://translations.launchpad.net/ - masa depannya adalah
dipertanyakan


Anda menerima ini karena Anda berlangganan utas ini.
Balas email ini secara langsung, lihat di GitHub
https://github.com/Mudlet/Mudlet/issues/856 , atau matikan utasnya
https://github.com/notifications/unsubscribe-auth/ABAeDUJoAsg-zvnOq1YUvuIqn-fbRwcCks5ruL2WgaJpZM4M3_u1
.

Re: XLIFF the _Qt Linguist Manual: Translators_ Qt Doc catatan:

__Menerjemahkan String__
Anda membuka file sumber terjemahan (TS) di Qt Linguist untuk terjemahan. File TS adalah file XML yang dapat dibaca manusia yang berisi frasa sumber dan terjemahannya. File TS biasanya dibuat dan diperbarui oleh lupdate. Jika Anda tidak memiliki file TS, lihat Manajer Rilis untuk mempelajari cara membuatnya.
Anda juga dapat menggunakan Qt Linguist untuk menerjemahkan file dalam XML Lokalisasi Interchange File Format (XLIFF) internasional yang dihasilkan oleh program lain. Namun, untuk proyek Qt standar, hanya format file TS yang digunakan. Versi minimum yang didukung untuk file format XLIFF adalah 1.1.

Ada platform terjemahan berbasis web di luar sana yang memiliki keunggulan besar dibandingkan aplikasi desktop: tidak perlu menginstal perangkat lunak apa pun, menyarankan terjemahan untuk teks yang sudah diterjemahkan, dan lain-lain.

@SlySven Saya sudah membaca ini, itulah sebabnya saya mengatakan apa yang saya katakan. Bunyinya seperti tidak sepenuhnya didukung atau renungan, itulah sebabnya saya menambahkan seharusnya (saya tidak pernah mengujinya).

@vadi2 Produk yang saya sebutkan adalah platform berbasis web. Tetapi Anda masih perlu menggunakan ahli bahasa qt untuk membuat output dari platform tersebut dapat digunakan oleh kerangka terjemahan Qt. Yang juga mengikat kita ke format yang didukung TS files dan XLIFF .

Saya telah bermain dengan Linguist dan UI cukup bagus sejauh yang saya tahu (saya seorang penggemar :heart_eyes :), itu mereplikasi dialog UI {dan menunjukkan kode sumber di mana string teks berasal untuk C++ yang berasal QStrings } sehingga Anda dapat melihat ide yang bagus seperti apa tampilannya dalam bahasa yang berbeda dan Anda dapat mengerjakan beberapa terjemahan secara bersamaan. Saya hanya berharap Qt lebih kaku dalam tidak menyusun ulang konten file TS yang tidak perlu untuk menjaga kebisingan git turun ketika file diperbarui oleh kontributor - tidak seperti, katakanlah, QGridLayouts dalam file .ui. * menghela nafas *

Adapun kebutuhan untuk menggunakan Qt Linguist - Saya pikir karena kami menggunakan Qt Libraries umumnya kami cenderung berkomitmen untuk itu (seperti dalam _Pig_ daripada _Chicken_ tingkat komitmen dalam _bacon-and-egg sarnie_) selain menjadi asli gettext akan menjadi _harder_ dalam cara yang tidak baik saya percaya.

Sepertinya saya tertarik melihat Qt Linguist mengekspor ke sesuatu yang berbasis web, dengan opsi bagi orang-orang untuk menginstal dan melihat pratinjau terjemahan mereka secara realtime jika mereka mau. Saya akan melihat layanan yang Anda sebutkan @keneanung , mereka terlihat bagus.

Saya juga memikirkan Transifex, tetapi sepertinya itu tidak berjalan dengan baik lagi.

Inilah cara proyek Mozilla menangani pelokalan dan terjemahan: https://developer.mozilla.org/en-US/docs/Mozilla/Localization/Quick_start_guide/Translation_phase

Pandangan mendalam lainnya tentang beberapa alternatif dan proses secara umum dalam tesis studi master ini tentang “Terjemahan dalam perangkat lunak gratis”: https://larjona.wordpress.com/translations-in-libre-software/

Terima kasih @Kebap , saya telah membaca makalah yang Anda

Saya ingin ini memiliki penghalang masuk serendah mungkin dan yang mengesampingkan terjemahan berbasis desktop di mana orang tersebut harus mengunduh dan menginstal perangkat lunak, kemudian mencari file yang tepat sebelum mereka memiliki kesempatan untuk mulai bekerja.

Weblate tampaknya bagus dan open-source, tetapi versi host-nya juga sedang down sekarang - dan begitu juga semua terjemahan yang di-host seperti untuk proyek Tilix. Tidak baik. Saya juga berhati-hati dalam meng-hosting lebih banyak hal di server kami karena sudah berjalan pada batasnya.

Akan mencoba demo Transifex. Mereka mendukung open-source dan mereka tampaknya menjadi toko yang jauh lebih besar, sejauh ini lebih kecil kemungkinannya untuk turun, tidak seperti Weblate.

Dengan demikian, jika integrasi Weblates Git benar-benar berfungsi, itu akan jauh lebih baik untuk digunakan karena _harus_ memperbarui teks sumber baru secara otomatis dari Git, dan mungkin mengkomitnya kembali. Transifex di sisi lain mengharuskan saya mengunggah file secara manual untuk diterjemahkan.

Sementara Transifex mendukung file .ts secara asli, tampaknya tersendat saat diunggah. Menggunakan ts2po dan mengunggah file .po berhasil.

Sepertinya Anda dapat memiliki pembaruan dua arah otomatis antara Transifex dan Github dengan beberapa middleware: https://docs.transifex.com/integrations/github-txgh

Saya dapat mengunduh .po dengan terjemahan utuh dari Transifex, tetapi po2ts tersedak pada file dengan kesalahan penyandian Python:

po2ts: WARNING: Error processing: input ./for_use_mudlet_rupo_1_ru.po, output ./for_use_mudlet_rupo_1_ru.ts, template None: 'ascii' codec can't encode characters in position 1994-1999: ordinal not in range(128)

Saya akan meninggalkan proyek Transifex di https://www.transifex.com/mudlet/mudlet/dashboard jika ada orang lain yang ingin menerjemahkan @Kebap @keneanung. Akan mencoba Weblate berikutnya.

Weblate bagus - memiliki _ton_ opsi login pihak ketiga, jadi bergabung dengannya benar-benar bebas gesekan.

@vadi2 menulis:

Saya dapat mengunduh .po dengan terjemahan utuh dari Transifex, tetapi po2ts tersedak pada file dengan kesalahan penyandian Python:

Saya pikir saya membaca di suatu tempat bahwa versi po2ts hanya berfungsi untuk spesifikasi lama file .ts dan perlu diperbarui (saya kira pada akhirnya) - Saya perhatikan bahwa itu berasal dari Perangkat Penerjemahan dari Terjemahkan kode sumber House mixxx internationalization page .

Sebenarnya kesalahan "pengkodean" itu terdengar seperti mencoba menghasilkan file .ts mana penyandiannya adalah ASCII dan BUKAN UTF-8 jadi barfing pada titik di mana ia perlu menggunakan beberapa karakter (dalam string _translated_) itu bukan ASCII...

Halaman itu terakhir diperbarui empat tahun lalu! Proses untuk pengembang sudah keluar
tanggal, saya pikir. Itu beberapa dokumentasi terjemahan yang cukup mengesankan
meskipun!

Pada Selasa, 19 Sep 2017, 18:18 Stephen Lyons [email protected] menulis:

@vadi2 menulis:

Saya dapat mengunduh .po dengan terjemahan utuh dari Transifex,
tetapi po2ts tersedak pada file dengan kesalahan penyandian Python:

Saya pikir saya membaca di suatu tempat bahwa versi po2ts mereka hanya berfungsi untuk yang lama
spesifikasi file .ts dan perlu diperbarui (saya kira pada akhirnya) - I
perhatikan bahwa itu berasal dari Perangkat Terjemahan
http://toolkit.translatehouse.org/ dari sumber Translate House Github
kode https://github.com/translate/translate dan versi terbaru adalah
2.2.5 (Saya tidak tahu apa yang mereka gunakan) pada saat penulisan. Menemukan sebuah
halaman web dari proyek lain (tidak yakin itu berbasis GitHub tetapi
proses keseluruhan untuk mereka sepertinya hal-hal yang harus kita lakukan: mixxx
halaman internasionalisasi
https://mixxx.org/wiki/doku.php/internationalization .


Anda menerima ini karena Anda ditugaskan.

Balas email ini secara langsung, lihat di GitHub
https://github.com/Mudlet/Mudlet/issues/856#issuecomment-330592819 , atau bisukan
benang
https://github.com/notifications/unsubscribe-auth/AAGxjEdeBPs-7fDkUwfoLjUt48eJJhl0ks5sj-lagaJpZM4M3_u1
.

Weblate tampaknya tidak berada dalam posisi yang baik. Saya belum menerima tanggapan untuk aplikasi saya yang dihosting, dan proyek ini tidak mendapatkan banyak pembaruan. Kembali ke Transifex.

Kiat tentang cara mendapatkan pengaturan Transifex dengan Qt: https://forum.qt.io/topic/36750/qt5-ts-files-and-transifex-continuous-translation-localization

https://bugreports.qt.io/browse/QTBUG-1136 :

akhirnya, ahli bahasa pada dasarnya adalah pada pendukung kehidupan - kami menyerahkan tanah kepada ISV yang berspesialisasi dalam bidang ini.

Qt Linguist adalah teknologi buntu - tidak akan mendapatkan fitur apa pun di masa mendatang, jadi kami harus menggunakan platform berbasis web di sini.

Saya akan melihat agar terjemahan Transifex aktif dan berjalan sekarang setelah #1334 tersedia.

Hanya untuk mengulangi apa yang saya sebutkan dalam referensi silang Kebap bahwa crowdin juga tampak seperti pilihan yang valid untuk Proyek Sumber Terbuka seperti milik kami - dan mereka dapat menangani file Qt .ts dan juga memiliki integrasi Github - fitur pseudolocalizaton juga harus bantu kami untuk mencegah masalah di GUI karena kami belum menyusun teks dengan benar ( saya pikir ) dan pasti akan membantu kami memastikan kami meninggalkan cukup waktu untuk bahasa dengan string yang lebih panjang sehingga en-US ...

crowdin terlihat bagus - mari kita lihat bagaimana perbandingannya dengan Transifex, saya punya proyek uji di sini .

@SlySven bahwa mangling kode untuk membuat html lebih bagus untuk penerjemah adalah prematur - transifex misalnya menangani markup html sudah sangat bagus:

peek 2018-05-18 13-36

Saya menemukan jawabannya - crowdin juga memiliki opsi itu. Cukup pilih "sembunyikan" di pengaturan tag editor :

selection_143

Ini berarti bahwa kita tidak perlu melakukan mangling kode yang telah dilakukan @SlySven lagi - kita dapat menggunakan HTML apa adanya dalam string sumber, dan baik pembuat kode maupun penerjemah tidak merasa terganggu.

Saya senang dengan saran @SlySven 's menggunakan @crowdin untuk terjemahan. @Kebap , @keneanung , @SlySven pendapatmu ?

Setelah kami setuju, saya akan memoles proyek di crowdin menjadi resmi, mengajukan permohonan lisensi sumber terbuka dan kami mulai mengeluarkan kata untuk penerjemah.

Hai,

Saya adalah bagian dari tim Crowdin dan dengan senang hati akan membantu penyiapan lebih lanjut jika perlu! Jangan ragu untuk menyebutkan saya jika ada pertanyaan

Saya baik-baik saja dengan crowdin juga. UI-nya membingungkan pada awalnya, tetapi saya yakin kami (saya) akan terbiasa.

Saya akui saya belum melihat lebih dekat pada Transifex karena saya mematikannya secara mental mengingat saya mengerti bahwa itu tidak menangani format Qt .ts saat ini dengan baik/langsung - apakah itu berubah atau saya salah dalam keyakinan itu?

Satu hal tentang Crowdin yang saya lihat di git commits baru-baru ini adalah Anda mengunggah beberapa file .ts yang telah dikonfigurasi secara lokal untuk bahasa tertentu. Anda telah memperbaikinya sekarang dengan hanya mengirim satu file file mudlet_en.ts tetapi itu tampaknya masih kurang tepat bagi saya. Anda mungkin ingin menghapus atau mengomentari baris TRANSLATIONS = dalam file mudlet.pro dan memiliki skrip shell yang berjalan (di dasar sumber):

lupdate -recursive ./src/ -ts ./translations/mudlet.ts

untuk menghasilkan satu file khusus non-bahasa untuk diteruskan ke proses terjemahan Crowdin dan mendapatkannya untuk menghasilkan file mudlet_xx_YY.ts kita inginkan (Saya telah mengubah satu pengaturan di Crowdin untuk menentukan _xx_YY sufiks _xx ). Itu masih akan menghasilkan satu set file untuk kemudian disalin kembali ke direktori yang sama siap untuk lrelease .

BTW Membiarkan file polos tanpa sufiks di sekitar sangat membantu karena itu berarti bahwa pihak yang berkepentingan dengan bahasa minoritas dapat menyalin dan mengganti namanya agar berfungsi secara pribadi jika mereka menginginkan bahasa yang berbeda, terbuka, dengan Qt Linguist yang disediakan. {Mungkin yang bajakan untuk 19 September misalnya!!!}

Saya pikir langkah-langkah anti-kebingungan HTML yang telah saya ambil tampaknya menjadi sedikit kurang diperlukan karena plugin Qt Designer tampaknya menjadi sedikit kurang bersemangat untuk mengotak-atik HTML dalam beberapa versi Qt terakhir. Saya belum sepenuhnya yakin bahwa itu tidak akan mengacaukan segalanya dan mengubah banyak hal dengan, katakanlah, memaksa penggunaan font tertentu yang dimiliki orang terakhir yang mengeditnya di sistem mereka daripada membiarkannya menjadi font generik yang dapat bekerja di semua platform. Saya akan melihat lagi dan melaporkannya di sini karena itu akan memengaruhi cara kami merekam HTML semacam itu dalam pekerjaan kami.

Saya akui bahwa saya belum melihat lebih dekat pada Transifex karena saya mematikannya secara mental karena saya mengerti bahwa itu tidak menangani format Qt .ts saat ini dengan baik/langsung - apakah itu berubah atau apakah saya salah dalam keyakinan itu?

Saya juga, sepertinya sudah berubah: https://docs.transifex.com/formats/qt-ts

Saya tidak berencana untuk menggunakan plugin Qt Designer jadi apa pun mangling yang dilakukannya tidak relevan - crowdin menangani terjemahannya sendiri dengan cukup baik, dan rendering HTML-nya dengan gaya "sembunyikan" dapat ditoleransi.

Oh, masih melakukannya - memasukkan tabel dan DTD - jadi, yang lebih mudah dibaca dan diuraikan oleh manusia, ini:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'FreeSans'; font-size:9pt; font-weight:400; font-style:normal;">
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;"><span style=" font-size:large; font-weight:600;">Welcome to Mudlet!</span></p>
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Click on one of the MUDs on the list to play.</p>
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">To play a game not in the list, click on <img src=":/icons/list-add_small.png" /><span style=" color:#555753;">New</span>, fill in the <span style=" font-style:italic;">Profile Name</span>, <span style=" font-style:italic;">Server address</span>, and <span style=" font-style:italic;">Port</span> fields in the <span style=" font-style:italic;">Required</span> area.</p>
<p align="center" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">After that, click <img src=":/icons/dialog-ok-apply_small.png" /><span style=" color:#555753;">Connect</span> to play.</p>
<p style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">Have fun!</p>
<p align="right" style=" margin-top:12px; margin-bottom:12px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px;">The Mudlet Team <img src=":/icons/mudlet_main_16px.png" /></p></body></html>

atau ini, yang melakukan hal yang sama sejauh yang kita ketahui:

<html><head/><body><center><big><b>Welcome to Mudlet!</b></big></center></p>
<p><center>Click on one of the MUDs on the list to play.<center></p>
<p><center>To play a game not in the list, click on <img src=":/icons/list-add_small.png"/> <span style="color:#555753;">New</span>, fill in the <i>Profile Name</i>, <i>Server address</i>, and <i>Port</i> fields in the <i>Required</i> area.<center></p>
<p><center>After that, click <img src=":/icons/dialog-ok-apply_small.png"/> <span style=" color:#555753;">Connect</span> to play.</center></p>
<p>Have fun!</p>
<p align="right">The Mudlet Team <img src=":/icons/mudlet_main_16px.png"/></p></body></html>

Secara teknis ini semua Qt rich-text yang hanya merupakan sub-set dari HTML (jadi mengapa memaksakan penyertaan DTD HTML 4.0 yang ketat?)

Bahkan menampilkan < dan > sini alih-alih &lt; dan &gt; dalam file mentah yang akan dilihat oleh penerjemah, saya pikir sudah jelas mana yang akan menjadi lebih mudah untuk digunakan tanpa adanya widget tampilan Teks Kaya HTML/Qt...

Saya pikir saya membaca di suatu tempat bahwa bahasa CJK benar-benar tidak boleh menggunakan efek font Tebal atau Miring (sebaliknya saya pikir mereka menggunakan yang setara dengan aksen titik di salah satu tepi mesin terbang) - jadi dalam kasus tersebut mark-up dapat terlibat dalam proses penerjemahan...

Menjalankan skrip shell tidak portabel (untuk Windows), jadi saya lebih suka tidak melakukannya. File mudlet_en.ts tampaknya berfungsi dengan baik?

Ini hari Jumat jadi mari kita buat kesimpulan tentang ini dalam beberapa hari ke depan sehingga kita bisa memulai langkah selanjutnya, yang menurut saya adalah:

1) proses penerjemah untuk melaporkan string yang membingungkan - jika penerjemah tidak dapat memahaminya, kemungkinan pengguna kami juga tidak
2) proses terjemahan yang sebenarnya dan bagaimana cara kerjanya dengan alur kerja kami

Saya akan merekomendasikan terlebih dahulu untuk memikirkan lebih banyak tentang detail proses yang kita butuhkan, dan baru kemudian memutuskan alat mana yang paling cocok untuk mereka.

Sejauh yang saya bisa lihat sekarang, kami memiliki beberapa sumber teks utama yang berbeda:

  • Klien Mudlet itu sendiri
  • Situs web Mudlet
  • Mudlet wiki
  • teks spontaneus "lainnya" perlu dimasukkan secara manual

Kemudian proses untuk masing-masing hampir sama, tetapi perlu ditinjau secara terpisah:

  • Temukan cara untuk membedakan teks usang dari teks relevan saat ini yang perlu diterjemahkan.
  • Dapatkan teks dari sumber (lihat di atas). Bisakah ini diotomatisasi dengan alat apa pun? Siapa yang harus bertanggung jawab?
  • Masukkan teks ke alat terjemahan.
  • Menerjemahkan di dalam alat (oke ini yang diharapkan, tetapi juga membutuhkan antarmuka dan alur kerja yang baik)
  • Penerjemah melaporkan string yang membingungkan kembali ke tim Mudlet dengan informasi bagaimana mereka perlu disesuaikan.
  • Tim Mudlet memperbarui teks di sumber. Entah karena laporan, atau karena evolusi alam.
  • Teks yang diperbarui dari sumber membutuhkan pembaruan dalam alat terjemahan. Ekspor dan impor lagi, ditambah diff.
  • Teks yang diterjemahkan akan selesai. Ekspor dari alat terjemahan. Otomatisasi lagi?
  • Impor teks terjemahan ke sumber.
  • Tampilan terjemahan dalam sumber. Di sini kita akan membutuhkan semacam sakelar sakelar bahasa di setiap sumber.

Saya melihat beberapa plugin untuk Wordpress dan Mediawiki, serta integrasi di Crowdin dan Transifex, tetapi tidak punya banyak waktu untuk meneliti semua ini secara lebih rinci.

Saya akan menyukai proses yang paling otomatis untuk semua langkah di atas, dan memilih alat mana yang paling mendukung.

Sejauh kode sumber/dialog (formulir) pergi:

  • Temukan cara untuk membedakan teks usang dari teks relevan saat ini yang perlu diterjemahkan.
  • Dapatkan teks dari sumber (lihat di atas). Bisakah ini diotomatisasi dengan alat apa pun? Siapa yang harus bertanggung jawab?

    • Keduanya selesai dengan perintah lupdate yang mengekstrak teks sumber dari, coba tebak, kode sumber dan menambahkan/memperbarui catatan mereka di - apa yang saya pikir harus netral bahasa file mudlet.ts ( saat ini mudlet_en.ts sinyal ke beberapa pihak yang secara khusus memegang terjemahan bahasa Inggris - sedangkan - dengan bagaimana kita akan menggunakannya sebagai kode sumber ==> Crowdin Transfer tanggal menengah itu akan digunakan untuk semua tapi bahasa Inggris (Amerika ) kasus. Jika tidak dipanggil dengan opsi --no-obsolete maka string yang ada tetapi sekarang hilang tidak akan dihapus - itulah yang kita inginkan setidaknya selama tahap pengembangan. Alasan saya mengusulkan untuk membuat yang terpisah untuk en-US lokal karena itu akan menjadi sangat pendek yang hanya berisi string untuk jamak yaitu tempat di mana kita akan memiliki string sumber seperti "menghapus %n ruangan" sehingga, untuk kasus itu "menghapus 1 ruangan" atau "menghapus 2 kamar" digunakan.

  • Masukkan teks ke alat terjemahan.

    • Proses memperbarui cabang pengembangan harus menyebabkan hal di atas terjadi dan .ts diperbarui diunggah dari (saya sarankan) build CI linux (karena paling mudah bagi kami untuk membuat skrip)

  • Menerjemahkan di dalam alat (oke ini yang diharapkan, tetapi juga membutuhkan antarmuka dan alur kerja yang baik)
  • Penerjemah melaporkan string yang membingungkan kembali ke tim Mudlet dengan informasi bagaimana mereka perlu disesuaikan.

    • Sepertinya crowdin memungkinkan siapa saja untuk berkomentar atau mengangkat masalah tentang string sumber apa pun yang setidaknya akan terlihat oleh manajer (tetapi mungkin terbuka untuk lebih banyak pihak)

  • Tim Mudlet memperbarui teks di sumber. Entah karena laporan, atau karena evolusi alam.

    • Termasuk tempat di mana teks sumber membingungkan atau salah eja dari bentuk en_US yang diharapkan - misalnya saya mungkin telah menggunakan lisensi ( kata benda en-GB , cf license sebagai kata kerja en-GB ) tetapi selalu lisensi dalam en-US untuk kedua bentuk.

  • Teks yang diperbarui dari sumber membutuhkan pembaruan dalam alat terjemahan. Ekspor dan impor lagi, ditambah diff.

    • jalankan kembali lupdate - tetapi ini harus terjadi secara alami melalui skrip CI pada pembaruan cabang 'pengembangan'

  • Teks yang diterjemahkan akan selesai. Ekspor dari alat terjemahan. Otomatisasi lagi?

    • Salah satu dari kita dapat "Mengunduh terjemahan" sebagai satu set lengkap file mudlet_xx_YY.ts secara manual dari Crowdin dan git memasukkannya ke dalam direktori /translations - ingat bahwa file ini tidak diperbarui oleh lupdate kecuali, mungkin, untuk bentuk jamak-saja mudlet_en_US.ts - sebagai gantinya mereka dihasilkan di Crowdin dari file mudlet.ts .

  • Impor teks terjemahan ke sumber.

    • Tidak sesuai dengan yang diperlukan, teks terjemahan tidak dibaca oleh aplikasi dari file .ts . Sebagai gantinya, setelah saya mendapatkan kode yang direvisi dan dipublikasikan, aplikasi mudlet akan membaca terjemahan saat run-time dengan memuat file biner mudlet_xx_YY.qm (bersama dengan Qt yang sesuai - yang saya perhatikan kita sudah mendistribusikan dengan versi penginstal!) Jadi awalnya saya membayangkan salah satu dari kita akan menjalankan lrelease untuk mengonversi file .ts menjadi file .qm dan mengkomitnya ke repositori git sebagai dengan baik. Akhirnya Vadim menyarankan agar kami mengirimkan versi rilis dengan satu set file .qm disertakan sebagai file sumber daya. Ini sesuai untuk versi penginstal tetapi pembuat paket Linux akan berharap untuk menyimpannya, katakanlah /usr/share/mudlet/translations read-only (bersama file Mudlet lua eksternal). Saya memiliki kode prototipe yang memungkinkan kedua pengaturan ini ditangani tetapi dengan mengizinkan pengguna memuat file terjemahan dari tempat lain (mungkin dari direktori /translations dalam kode sumber) itu akan mengizinkan pengembangan terjemahan yang berdiri sendiri untuk bahasa minoritas lainnya oleh pihak yang berkepentingan dengan alat Qt asli Linguist - itu juga akan memungkinkan pengembang untuk bekerja pada kasus pribadi/ujian.

  • Tampilan terjemahan dalam sumber. Di sini kita akan membutuhkan semacam sakelar sakelar bahasa di setiap sumber.

    • Dari eksperimen menggunakan QLangaugeEvent lebih kompleks daripada yang kita butuhkan karena ia menyala setiap kali QQTranslator::load(...) dipanggil - menurut saya lebih mudah untuk memiliki mudlet class emit a (void) signal_translatorChangeCompleted(const QString&, const QString&) dimana argumen dari kode xx_YY (bahasa_COUNTRY/REGION) saat ini dan sebelumnya sebagian besar tidak digunakan kecuali untuk, IIRC Host yang menghasilkan event lua untuk skrip /package event handler untuk digunakan. Sinyal itu dikirim ke setiap kelas dengan teks GUI persisten ke slot_guiLanguageChange() mana ia memanggil retranslateUi(this) yang diperlukan yang didefinisikan di setiap kelas yang juga menggunakan setupUi(this) asalkan Anda mengatur opsi di Qt IDE dengan benar (saya tidak tahu bagaimana cara kerjanya saat menggunakan qmake secara langsung):

      qt_options

      panggilan itu akan mengubah terjemahan pada setiap string yang dapat diterjemahkan dalam formulir/dialog dan kemudian kita harus membuat ulang semua teks GUI yang kita buat saat run-time, dengan mempertimbangkan kondisi apa pun yang mungkin menyebabkan teks yang berbeda disatukan. Ini tidak seburuk kedengarannya karena kita hanya perlu mengubah string persisten - yaitu ada untuk waktu yang lama - karena teks sementara akan secara otomatis menggunakan terjemahan baru setiap kali tr(...) digunakan untuk membuatnya.

Ini tidak semua yang saya miliki tentang topik ini tetapi saya dapat melihat bagaimana sebagian besar langkah harus dilakukan untuk teks GUI aplikasi ...

Terima kasih untuk detailnya SlySven! Sepertinya saya, mungkin Anda pernah melakukan ini sebelumnya? Untuk aplikasi lain? Dengan Corwdin? Itu akan membuat menerjemahkan aplikasi Mudlet itu sendiri jauh lebih mudah.

Di sisi lain, kami masih memiliki pertanyaan yang sama untuk sumber teks lain di alam semesta Mudlet, seperti dokumentasi wiki, situs web Mudlet, dan teks tambahan yang mungkin perlu dimasukkan secara manual, seperti yang dijelaskan dalam posting terakhir saya di atas.

Saya belum membahas jawaban di atas sepenuhnya tetapi Crowdin memiliki integrasi Github yang tidak diperhitungkan - https://github.com/Mudlet/Mudlet/pull/1692 adalah PR yang dibuat secara otomatis, kami tidak perlu melakukannya pengunggahan atau pengunduhan manual apa pun; cukup gabungkan PR. Dengan demikian prosesnya akan sedikit lebih sederhana dari yang dijelaskan!

Uji coba crowdin teman-teman akan kedaluwarsa dalam 4 hari jadi saya perlu yay/nay untuk itu - kami tampaknya senang dengan itu sejauh ini

Ada yay dari saya!

Hai! ;)

Saya sudah mencoba https://crowdin.com/ … untuk menerjemahkan tidak apa-apa, saya tidak tahu apakah bagus untuk umpan balik cepat, permintaan, dan sebagainya … seperti "kontestasi" untuk terjemahan atau contoh ...

Bagaimana dengan kolom komentar di crowdin?

Hai @Joker-ITA,

Sebenarnya ada beberapa cara bagaimana Anda dapat menambahkan konteks tambahan untuk penerjemah:

1) Di editor, klik "Edit Konteks" di bawah string untuk memberikan info lebih lanjut kepada penerjemah;
2) Anda dapat meninggalkan komentar untuk string apa pun di editor (di panel kanan, ketikkan komentar Anda);
3) Tambahkan konteks untuk string apa pun melalui pengaturan proyek -> tab Strings;
4) Saya yakin Anda memiliki beberapa istilah khusus yang mungkin tidak dipahami oleh penerjemah biasa, jadi masuk akal untuk membuat glosarium dan mengunggahnya ke Crowdin. informasi lebih lanjut . Bahkan bisa berupa spreadsheet Excel dengan 2 kolom: Term & Description;
5) Jika Anda memiliki komentar di dalam file (yaitu Android XML, string iOS, .properties, .yml, Google Chrome JSON), komentar tersebut akan diimpor secara otomatis bersama dengan file;
6) Anda dapat mengunggah tangkapan layar ke Crowdin dan menandai string apa pun di atasnya: https://support.crowdin.com/adding-screenshots/
7) Jika kita berbicara tentang webapp l10n, masuk akal untuk mencoba fitur Dalam Konteks kami untuk memungkinkan penerjemah menerjemahkan langsung di situs web Anda.

Ini hanya cara utama bagaimana Anda dapat mengontekstualisasikan teks untuk terjemahan

@Kebap menulis:

Terima kasih untuk detailnya SlySven! Sepertinya saya, mungkin Anda pernah melakukan ini sebelumnya? Untuk aplikasi lain? Dengan Corwdin? Itu akan membuat menerjemahkan aplikasi Mudlet itu sendiri jauh lebih mudah.

Hanya secara manual menggunakan alat Qt sendiri (saya menghabiskan beberapa minggu di Prancis Selatan dalam beberapa tahun terakhir untuk mengerjakan detailnya). Kami masih akan menggunakan dua dari mereka - lupdate & lrelease - tetapi kami mengganti Qt Linguist (menjadi alat yang menambahkan terjemahan ke teks sumber yang ada di sejumlah File .ts dihasilkan oleh lupdate untuk setiap terjemahan, sebelum lrelease mengubahnya menjadi file mudlet_xx_YY.qm khusus bahasa/lokasi yang diperlukan - sekali lagi satu terjemahan per bahasa/lokasi ditawarkan) dengan Crowdin yang akan mengambil satu mudlet.ts berkas dan menghasilkan mudlet_xx_YY.ts file sebagai gantinya.

Satu perbedaan penting antara menggunakan linguist dan apa yang akan kita lakukan menggunakan Crowid adalah bahwa kita dapat lolos tanpa:

TRANSLATIONS =

baris dalam file proyek untuk Crowid.

Sebenarnya saya pikir kita akan membutuhkan dua file - mudlet.ts untuk semua lokal dan yang akan melalui proses Crowdin dan mudlet_en_US.ts yang akan diekstraksi dengan -pluralonly pilihan dan hanya akan memiliki beberapa terjemahan untuk mengonversi pesan seperti tr("deleted %n room(s)", "", roomCount) ke "deleted 1 room" atau "deleted 2 rooms" tergantung pada nilai roomCount dan mungkin bisa dilakukan oleh Anda sendiri...

Hebat - kita akan pergi dengan Crowdin :)

Saya akan menyesuaikan nama file seperti yang disarankan @SlySven dan mengatur proyek di Crowdin dengan benar sehingga orang dapat mulai menerjemahkan. Terjemahan pengujian apa pun yang telah kami lakukan akan disimpan dalam Memori Transaksi sehingga menerapkannya kembali akan cukup mudah.

Menjawab pertanyaan @Kebap , dengan mempertimbangkan jawaban @SlySven :

  • Temukan cara untuk membedakan teks usang dari teks relevan saat ini yang perlu diterjemahkan.

    • Alat lupdate melakukan ini

  • Dapatkan teks dari sumber (lihat di atas). Bisakah ini diotomatisasi dengan alat apa pun? Siapa yang harus bertanggung jawab?
  • Masukkan teks ke alat terjemahan.

    • kita menjalankan lupdate secara manual dan memasukkannya ke development - bagian ini dapat diotomatisasi setiap hari oleh Travis

    • crowdin secara otomatis mengambilnya karena integrasi github

  • Menerjemahkan di dalam alat (oke ini yang diharapkan, tetapi juga membutuhkan antarmuka dan alur kerja yang baik)

    • antarmuka terjemahan crowdin

  • Penerjemah melaporkan string yang membingungkan kembali ke tim Mudlet dengan informasi bagaimana mereka perlu disesuaikan.

    • tulis masalah di crowdin

  • Tim Mudlet memperbarui teks di sumber. Entah karena laporan, atau karena evolusi alam.
  • Teks yang diperbarui dari sumber membutuhkan pembaruan dalam alat terjemahan. Ekspor dan impor lagi, ditambah diff.

    • crowdin mengambilnya

  • Teks yang diterjemahkan akan selesai. Ekspor dari alat terjemahan. Otomatisasi lagi?
  • Impor teks terjemahan ke sumber.
  • Tampilan terjemahan dalam sumber. Di sini kita akan membutuhkan semacam sakelar sakelar bahasa di setiap sumber.

    • @SlySven akan melakukan keajaiban di sini :)

Apa perlunya memiliki file terjemahan terpisah dengan hanya bentuk jamaknya?

Instruksi terjemahan tersedia di https://wiki.mudlet.org/w/Translating_Mudlet

Apakah halaman ini membantu?
0 / 5 - 0 peringkat