Media Pengembangan Web & App | by APPKEY

Pembuatan Aplikasi Cross-platform Panduan Mempublikasikan Project Aplikasi Flutter Anda

Panduan Mempublikasikan Project Aplikasi Flutter Anda

-

Pelajari cara mengembangkan aplikasi pertama Anda dengan Flutter. Kali ini, kami akan membuat aplikasi ini menjadi multibahasa. Kami akan menunjukkan cara melalui proses internasionalisasi dan cara melokalkan aplikasi Anda.

Apa arti internasionalisasi dan pelokalan dalam mengembangkan aplikasi Flutter?

  • Internasionalisasi (alias i18n) adalah penyiapan dan proses yang diperlukan untuk pelokalan aplikasi. Itu banyak dilakukan oleh pengembang.
  • Pelokalan (alias l10n) berarti menambahkan dukungan beberapa lokal ke aplikasi. Pekerjaan ini sebagian besar dilakukan oleh penerjemah (yang belum tentu pengembang).
  • Lokal (bukan singkatan mewah seperti l4e) adalah deskripsi wilayah tertentu (politik, budaya, atau geografis). Di Flutter (lebih tepatnya di Dart) terdiri dari 3 bahan:
  • bahasa (wajib), mis. Inggris, Polandia atau Serbia.
  • region (opsional; dalam API disebut kode negara), mis. Australia, AS, atau Hong Kong.
  • skrip (opsional), mis. Latin atau Sirilik.

Angka dalam singkatan mewah mewakili jumlah huruf yang dihilangkan. Selain i18n dan l10n, Anda mungkin juga menemukan a11y (aksesibilitas) dalam konteks terkait.

Mekanisme pelokalan – Flutter vs platform asli

mengembangkan aplikasi

Flutter tidak memiliki mekanisme pelokalan sendiri yang mirip dengan platform asli (iOS, Android). Singkatnya: dalam proyek asli, Anda hanya dapat menentukan pasangan kunci-nilai untuk setiap lokal yang didukung, di mana kunci bertindak sebagai identifikasi unik (seperti settings Screen Name ) digunakan kemudian dalam kode sumber dan nilai adalah terjemahan yang sebenarnya (misalnya. Pengaturan untuk bahasa Inggris atau Rendszer untuk Hungaria).

Di sisi lain, mengembangkan aplikasi Flutter tidak memiliki mekanisme seperti itu yang tersedia di luar kotak. Flutter CLI mendukung paket intl Dart yang dapat membantu dalam pelokalan aplikasi. Namun, tidak mudah digunakan sebagai dukungan bawaan pada platform asli.

Internasionalisasi aplikasi Flutter

Persyaratan terpenting adalah memisahkan teks yang berpotensi dapat diterjemahkan dari kode sumber. Dengan kata lain: teks yang dapat diterjemahkan tidak boleh di-hardcode, jadi alih-alih kode seperti ini:
Text(‘Measuring points’)
Anda harus menggunakan sesuatu seperti ini:
Text(Strings.of(context).measuringPoints)

Bentuk pastinya tergantung pada teknik internasionalisasi yang dipilih. Yang ini dari intl_utils.

Banyak kerangka kerja internasionalisasi untuk Flutter termasuk paket intl built-in menggunakan format file ARB (Application Resource Bundle) berdasarkan JSON. Informasi lebih lanjut tentang ARB dapat ditemukan di spesifikasi.

Penting untuk mengikuti pendekatan ini sejak awal proyek. Transformasi besar-besaran selanjutnya dari teks hardcode menjadi sumber daya yang dapat diterjemahkan hampir selalu lebih rawan kesalahan dan memakan waktu. Terkadang, perubahan lebih lanjut memerlukan refactor kode genap. Ini mungkin terjadi terutama jika teks berisi placeholder dan / atau bentuk jamak.

Rancangan

Mari kita asumsikan bahwa mengembangkan aplikasi flutter menampilkan teks bahasa Inggris: Selalu izinkan Pemindaian Jelajah Wi-Fi dan tampilannya sangat bagus. Semua bidang teks harus dikonfigurasi untuk menanganinya.

Bergantung pada konteksnya, Anda mungkin perlu menambah jumlah garis yang ditampilkan atau mengaktifkan berbagai luapan seperti elipsis (tiga titik di akhir).

Artikel Terkait  Ayo Realisasikan Ide-ide Anda! Langkah Awal Dalam Pengembangan Aplikasi (iOS & Android)

Placeholder

Katakanlah kita membutuhkan teks seperti aplikasi Gmail sedang berjalan . Di mana Gmail mewakili nilai variabel yang entah bagaimana dievaluasi oleh logika bisnis. Orang mungkin berpikir bahwa kasus seperti itu dapat dengan mudah diimplementasikan seperti ini:

Text(‘$appName ${Strings.of(context).runningLabel}’)

Jadi kami mengambil variabel, karakter spasi hardcode, dan teks yang dapat diterjemahkan yang dirujuk oleh kunci. Yah, tidak ada yang bisa lebih jauh dari kebenaran!

Teks yang diterjemahkan ke bahasa lain mungkin menggunakan urutan kata yang berbeda, misalnya dalam bahasa Polandia akan menjadi Aplikacja Gmail jest uruchomiona .

Jadi , penting untuk memperlakukan seluruh teks sebagai satu unit yang dapat diterjemahkan dengan placeholder alih-alih pembuatan manual dalam kode. Contoh teks yang disebutkan dapat diekspresikan seperti ini dalam format ARB:

  • Inggris: “runningLabel” : “{appName} is running”

Dan itu bisa digunakan seperti ini:
Text(Strings.of(context).runningLabel(appName)

Angka

Dalam kode sumber kami biasanya menulis angka seperti ini:
12345678901.2
Namun, pada UI angka tersebut akan muncul dalam format. Format tepatnya tergantung pada konteksnya, misalnya. kami mungkin menginginkan format ringkas, 2, 3, atau tanpa tempat desimal, dll.

Selain itu, ini bergantung pada lokal karena bahasa yang berbeda menggunakan berbagai kombinasi desimal dan ribuan pemisah. Terlebih lagi, lokal menentukan penggunaan skala panjang atau pendek .

Angka tersebut di atas dapat direpresentasikan misalnya seperti ini:

  • 12.345.678.901.2 – Inggris AS, desimal.
  • ١٢ ٬ ٣٤٥ ٬ ٦٧٨ ٬ ٩٠١ ٫ ٢ – Desimal Arab Mesir.
  • 12 345 678 901,2 – Polandia, desimal, perhatikan bahwa ada spasi yang tidak putus .
  • 1,2 triliun – Inggris AS, panjang ringkas.
  • 1,2 miliar – Polandia, panjang kompak (perhatikan bahwa Polandia menggunakan skala panjang).

Ada juga jenis format lain seperti saintifik atau persen. Anda dapat menemukan daftar lengkapnya di dokumentasi kelas NumberFormat.

Mata Uang

Sama halnya dengan angka, kita juga dapat menggunakan kelas NumberFormat untuk memformat nilai mata uang. Perhatikan bahwa selain dari lokalnya, ini juga tergantung pada mata uangnya, mis. Yen Jepang tidak memiliki angka desimal sedangkan rial Oman memiliki 3 digit.

Misalnya, nilai 12.345.670.000 (dalam sepersejuta unit mata uang sebagaimana ditentukan dalam kelas MicroMoney ) dapat muncul sebagai:

  • 12 345,67 Kč – Koruna Ceko, format sederhana.
  • ١٢ ٬ ٣٤٥ ٫ ٦٧ EGP – Pound Mesir menggunakan angka Arab Timur, format reguler.

Perhatikan bahwa (pada saat penulisan) ada 2 mata uang di dunia yang unitnya dibagi menjadi 5 subunit, bukan 100 atau 1000 seperti mata uang lain yang memiliki subunit. Namun, dalam hal pemrograman (termasuk Dart / Flutter), biasanya, hanya subunit dengan kekuatan 10 yang didukung, jadi mereka diperlakukan seperti memiliki 100 subunit.

Peringatan: Tipe floating-point (seperti dart ganda ) tidak boleh digunakan untuk matematika pada tipe mata uang! Ini dapat menyebabkan kesalahan halus misalnya. menambahkan 0,1 (dinyatakan sebagai ganda) sepuluh kali menghasilkan 0,999… bukan 1,0 .

Kelas MicroMoney yang disebutkan di atas hanya dapat digunakan untuk pemformatan angka. Pustaka standar untuk mengembangkan aplikasi Flutter tidak berisi jenis desimal atau moneter khusus yang dapat digunakan untuk matematika. Jika Anda perlu melakukan penghitungan seperti itu, Anda dapat melakukannya pada subunit integral (sen atau sepersejuta), atau menggunakan beberapa pustaka pihak ketiga dari pub .

Tanggal dan waktu

Sama halnya dengan angka, format tanggal juga bergantung pada lokalnya. Tidak seperti bilangan murni, ada lebih banyak jenis perbedaan antara berbagai format data. Misalnya, 23 November 2020 dapat direpresentasikan sebagai berikut:

  • 23/11/2020 – Bahasa Inggris AS, yMd format (tahun Bulan hari).
  • 23 November – Bahasa Inggris dd MMMM,.
  • 23 November – Bahasa Inggris dd LLLL,.

Terlepas dari pemisah dan terjemahan kata, kami harus mempertimbangkan:

  • urutan hari bulan dan tahun ditulis,
  • apakah jam 12 atau 24 jam digunakan,
  • apakah bulan ditulis sebagai nama, angka, atau angka romawi.

Beberapa bahasa juga membedakan apakah bulan itu kata yang berdiri sendiri atau muncul di dekat hari.

Satuan pengukuran

Sebagian besar dunia menggunakan sistem metrik (SI) dengan satuan seperti (kilo) meter untuk panjang, gram untuk massa dan derajat Celcius untuk suhu. Namun, beberapa negara (AS, Liberia, dan Myanmar) menggunakan sistem imperial dengan satuan seperti mil untuk panjang, pound untuk massa, dan derajat Fahrenheit untuk suhu.

Beberapa negara seperti Inggris Raya mungkin menggunakan keduanya. Ini mungkin tergantung pada konteks di mana seseorang harus digunakan.

Perhatikan bahwa tidak seperti tanggal, angka, dan mata uang yang disebutkan di atas di mana nilai mentahnya selalu sama (misalnya, sumber dari 1,50 zł dan $ 1,50 adalah 1,5 ) dalam kasus sistem pengukuran yang berbeda juga nilainya harus dihitung secara terpisah misalnya. 1,5 km adalah sekitar 0,93 mil .

Tidak ada dukungan untuk unit konversi pengukuran atau pemformatan di pustaka standar tetapi berbagai paket pihak ketiga tersedia di pub.dev.

Penerapan

Untuk mencapai API yang bergantung pada lokal yang berfungsi, kita perlu menentukan lokal mana yang kita dukung dan memberikan implementasi aktual kepada delegasi lokalisasi. Biasanya, kita tidak perlu mengimplementasikan yang terakhir secara manual karena dapat disediakan oleh perpustakaan.

Artikel Terkait  Top 15 App Editor Foto Jadi Video Gratis untuk Smartphone Anda

Sumber daya asli

Beberapa properti tidak dapat diubah di level mengembangkan aplikasi Flutter dan perlu dilakukan secara native. Ini termasuk setidaknya label nama aplikasi yang ditampilkan di dekat ikon di layar beranda dan di berbagai tempat seperti layar aplikasi terbaru di Android.

Untuk iOS, label dapat diatur dengan menambahkan properti CFBundleDisplayName ke ios/Runner/Info.plist file. Jika nama aplikasi itu sendiri harus dilokalkan, terjemahannya dapat ditambahkan ke file InfoPlist.strings untuk lokal yang sesuai.

Perhatikan bahwa jika mengembangkan aplikasi flutter Anda membutuhkan akses istimewa, misalnya. untuk kamera atau perangkat lokasi, maka Anda juga perlu memberikan pesan untuk setiap izin tersebut. Ini dapat dilakukan secara analogi dengan judul aplikasi.

Selain itu, di iOS, Anda wajib mencantumkan lokal yang didukung oleh aplikasi (selain melakukan hal yang sama di Flutter Level). Ini dapat dilakukan oleh larik CFBundleLocalizations di file Info.plist yang disebutkan.

Di Android, label disetel menggunakan atribut manifes aplikasi label. Untuk melokalkannya, gunakan sumber daya string, bukan nilai hardcode.

Selain itu, beberapa fungsionalitas aplikasi Flutter mungkin disediakan oleh plugin dan diterapkan secara terpisah untuk Android dan iOS. Jika ada beberapa konten yang perlu dilokalkan di sana, Anda harus menggunakan beberapa teknik khusus platform.

Secara lokal

Intl_utils juga terintegrasi dengan baik dengan Localizely (itu adalah perusahaan di belakangnya). Ini menyediakan editor terjemahan online grafis seperti spreadsheet. Biasanya lebih nyaman daripada JSON mentah dalam file ARB. Ingatlah, bahwa penerjemah profesional mungkin bukan ahli teknis.

Anda perlu membuat token API di konsol Localizely untuk berkomunikasi dengan API-nya. Token itu disimpan di direktori home Anda, jadi tidak perlu melakukan gitignore.

Tersedia juga pembaruan terjemahan OTA (Over-The-Air).

Perhatikan bahwa Localizely pada umumnya adalah layanan komersial berbayar. Pada saat penulisan Ini dapat gratis untuk proyek sumber terbuka atau sumber tertutup kecil (hingga 250 kunci string).

Internasionalisasi dan pelokalan aplikasi Flutter – Kesimpulan

Internasionalisasi dalam mengembangkan aplikasi flutter bukanlah proses yang sepele. Ini tidak hanya melibatkan teks itu sendiri tetapi juga angka, tanggal, terkadang gambar, atau bahkan fungsi aplikasi.

Ada alat seperti intl_utils atau Localizely yang dapat membantu. Namun, sangat penting untuk memikirkan tentang pelokalan sejak awal. Internasionalisasi aplikasi yang sudah selesai jauh lebih sulit dan rawan kesalahan.


Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.

Jasa Pembuatan Aplikasi

Jasa Pembuatan Website

Jasa Pembuatan Paket Aplikasi

Jasa Pembuatan Internet Marketing

Subscribe Sekarang

Dapatkan beragam informasi menarik tentang Website, Aplikasi, Desain, Video dan API langsung melalui email Anda. Subscribe sekarang dan terus belajar bersama kami!

Kategori

Blog Post Ranking 10

Rekomendasi 10 Aplikasi Pembuat Animasi 3D Terbaik. Ayo Cek!

Apakah Anda bercita-cita untuk menjadi seorang animator profesional? Belajar membuat animasi kini sudah menjadi hal mudah yang bisa dilakukan...

Cara Mudah Menambahkan Lokasi Alamat Bisnis Anda di Google Maps

Saat ingin hunting tempat makan atau tempat nongkrong terbaru, tak jarang beberapa dari Anda biasanya mendapatkan informasi terkini melalui...

Pengertian Internet & Dampak Positif dan Negatif Internet

Internet mungkin bukan sesuatu yang asing lagi, sebab semua kalangan pasti tahu apa itu internet. Hanya saja jika ditanya...

Proses Komunikasi: Encoding dan Decoding

Jika kita dapat melihat percakapan antar komputer, mungkin akan terlihat seperti ini: "010110111011101011010010110". Bahasa ini disebut dengan biner, encoding...

Metadata Adalah? Fungsi dan Jenis-Jenis Metadata

Pernah mendengar istilah metadata? Mungkin, kita sering mendengar istilah metadata. Tetapi, banyak dari kita yang belum tahu arti dari metadata...

Jasa Pembuatan Website Untuk Toko Online

Perusahaan yang menyediakan Jasa pembuatan website untuk toko online bisa kita temukan dengan mudah di internet. Masing-masing dari perusahaan...

Membuat Aplikasi di Playstore dengan Mudah

Membuat aplikasi di Playstore bisa Anda lakukan dengan mudah. Terdapat beberapa situs yang bisa membantu Anda untuk membuat aplikasi...

8 Contoh Search Engine Terbaik yang Paling Banyak Digunakan di Indonesia

Dulu jika ingin mencari informasi tentang apapun biasanya kita akan menanyakan kepada seseorang yang lebih mengetahui informasi, atau datang...

Looping Adalah Algoritma Perulangan: Berikut Contohnya

Jika anda sudah mendalami atau sedang mendalami dunia pemrograman terdapat sebuah konsep yang dapat memudahkan anda dalam menyusun struktur...

Domain Google? Apa Bedanya Dengan Domain Biasa?

Saat memutuskan untuk membuat website menjadi salah satu bentuk media digital marketing Anda dalam bersaing di zaman digital ini,...

Bisnis

Online Service

Peluang Bisnis

Model Bisnis

Entrepreneurship

Uang

Ketrampilan

Outsourcing

Monetize

Pemasaran

SEO

Internet Marketing

Dasar Pemasaran

Strategi Pemasaran

Situs Web Analitik

Iklan

Teknologi

Teknologi Terbaru

AI

Komputer

Jaringan

Paling Sering dibaca
Mungkin Anda Menyukainya