
Membuat proyek baru, saya harus menggunakan * .resx untuk WinForms, atau I2Localization for Unity, atau solusi lain untuk pelokalan aplikasi. Semua solusi ini serupa karena Anda harus membuat kunci pelokalan, memasukkannya ke dalam kode dan ke dalam kamus. Pada awalnya, semuanya baik-baik saja, tetapi seiring waktu, proses ini mulai mengganggu. Namun, melihat kunci dalam kode, tidak selalu jelas tentang apa ini.
Tentang situasi ketika Anda perlu menambahkan pelokalan ke proyek besar di mana tidak ada sama sekali, saya bahkan tidak akan mengatakan betapa sulitnya itu.
Saya tidak tahu mengapa, tetapi ternyata solusi yang sudah jadi seperti gnu / gettext sudah ada sejak lama. Ketika bertanya kepada teman dan kolega mereka (mereka yang bekerja dengan .NET), sebagian besar belum pernah mendengar hal ini. Karena itu, saya memutuskan untuk berbagi dengan alat yang praktis ini.
Prinsipnya sederhana. Anda menulis kode dengan baris dalam bahasa Inggris, menjalankan utilitas yang memindai sumber dan memberi Anda kemampuan untuk menerjemahkan. Tidak ada kunci yang perlu diciptakan. Teks dalam bahasa Inggris adalah kuncinya.
Mari kita mulai
1) Instal paket NGettext melalui Nu-get:
PM> Instal-Paket NGettext
NGettext adalah
implementasi lintas-platform GNU / Gettext untuk .NET.
2) Tambahkan file tambahan ke proyek Anda yang menyederhanakan sintaks sedikit:
https://github.com/neris/NGettext/blob/master/doc/examples/T.csKami juga menambahkan direktori ke proyek tempat terjemahan akan disimpan:
MyProj \ Loc \ ru-RU \ LC_Messages
Dalam kasus saya, kami mendapatkan gambar berikut:

3) Tambahkan path ke file T.cs:
static T() { var localesDir = Path.Combine(Directory.GetCurrentDirectory(), "Loc"); _Catalog = new Catalog("Test", localesDir, new CultureInfo("ru-RU")); }
Disederhanakan. Misalnya saja Rusia. (Dimungkinkan untuk membaca kamus dari majelis itu sendiri)
4) Kami menulis kode kami menggunakan lokalisasi. Alih-alih "teks" kita menulis T ._ ("teks")
namespace TestCode { static class Program { public static void Main(string[] args) { Console.WriteLine(T._("Hello, World!")); Console.WriteLine(T._("Cat")); Console.ReadKey(); } } }
5) Sekarang kita perlu menerjemahkan seluruh teks kita. Unduh
PoEdit . Buat file terjemahan:
File -> Buat -> folder LC_MESSAGES -> Test.po

Tentukan folder tempat sumber kami berada. Program mereka akan memindai:

Anda juga perlu menentukan kata kunci yang akan ditelusuri oleh poEdit:

Tambahkan terjemahan yang kami butuhkan dan simpan.

Tambahkan file terjemahan ke proyek. Buat selalu Salin:
(Dimungkinkan untuk menanamkannya di majelis itu sendiri)

Selesai Kami meluncurkan:

Penyiapan sudah siap. Sisanya sederhana. Tulis kode - edit terjemahannya
Anda juga dapat menemukan perpustakaan yang sudah jadi untuk antarmuka pelokalan:
→
WPF→
Informasi Tambahan tentang Menggunakan NGettext→
Informasi GNU / Gettext