Не ме разбирайте погрешно, пакетът intl и API за интернационализиране на приложения на Flutter са добри. Но никой не иска да прави нещата по безупречния ръчен начин, който Google е настроил да бъде. Има по-лесен начин да го накарате да се изпълнява автоматично във вашия работен процес на разработчици и да имате достъп до услуги на трети страни за управление на преводачи на трети страни за вашето flutter приложение.

Позволете ми да ви покажа начин за автоматизиране на интернационализирането на вашия процес на Flutter App.

Получете достъп до безплатните ми неща

Моят безплатен код и дизайнерски активи на Flutter могат да бъдат намерени на:



Разработката и дизайнът на Front-End приложения са по-зрели, така че началният учебен софтуер вече не е стартовият етап в нова работа, както беше в миналото.

Ако нямате прозрения от контексти от експерти, няма да можете да захванете тази стартираща работа или да направите това страхотно приложение при първото излизане на пазара.

Получаването на среден достъп до членство ви помага да се издигнете по пътя си към тази първа работа за Flutter Dev или първото ви страхотно приложение за flutter в магазините за приложения. И това е толкова просто, колкото две малки стъпки:

1. Използвайте моята връзка за абонамент за Medium, за да се присъедините към Medium:



2. Кликнете върху връзката към моя профил и ме последвайте, за да получавате незабавни известия по имейл, когато публикувам нова статия:



Международен фон

Нека преминем през пример:

Очевидно,

@appTitle

е някакъв ключ. Пакетът intl ще създаде два файла със съобщения, един за всички съобщения, което създава функция за доставяне на съобщенията за избран локал. Втората група генерирани файлове са отделните съобщения за функции на човешки езици:

Сега силата на този Intl пакет е, че можем да дефинираме съобщение като функция. И пакетът Intl ограничава интерполацията на низове, така че да получим известна полезност в това, че могат да се използват само функционални параметри и само в прости изрази. Това означава, че можем да напишем израз на функционален параметър за нашите множествени числа:

За да видя това по-добре, ще представя услугата на трета страна, тъй като те имат хубаво обяснение как да използвате ключовете и контейнерите.

Локализирано

Localizely е услуга на трета страна, която ще съхранява вашите съобщения за локализация на приложението, така че когато наемете преводачи, те да получат достъп само до конкретния език, който превеждат, и други удобни инструменти за автоматизация в работния процес за превод на приложението:

https://localizely.com/how-it-works/

И тяхното примерно обяснение за Intl пакет е в това хранилище:



И така, как можем да използваме контейнери?

Заместителите използват скобите, по отношение на ключовете поставяме заместителя в името на ключа. А множествените числа се извикват чрез имената на техните функционални параметри в скоби в същия пример в долната част.

Intl Automation

Локализирано създаване на пакета Intl Utils за автоматизиране на генерирането на файлове за интернационализация. Използвате го, като поставите това във вашата pubspec:

И в долната част на вашата pubspec:

Сега за останалите стъпки за автоматизация:

1. Преименувайте вашия app_en.arb на intl_en.arb

2. Ако използвате CI сървър, командата за поставяне в скрипта на вашия CI сървър е:

flutter pub run intl_utils:generate

3. За да автоматизирате за вашата IDE изтеглете и инсталирайте един от тези добавки:





4. След като презаредите проекта за приложение, трябва да направите 3 промени, ако това е приложението App Skeleton, въведено във Flutter 2.5:

Във файла dart на приложението на скелета на приложението имате това:

Сега променете един от генерираните международни импортирания:

от:

import 'package:flutter_gen/gen_l10n/app_localizations.dart';

To:

import 'package:your_app_name/src/localization_gen/l10n.dart';

След това имате вътрешните референции на делегата, от които да промените:

To:

И така, защо извадих !. Защото който някога прави шаблона за скелетно приложение, настроен в SDK, очевидно не знае правилната употреба на нулева безопасност като мен! Как станах толкова умен относно нулевата безопасност?

Хм, моята настройка на Lints (голям съвет да щракнете върху всички връзки към статиите и да започнете да четете).

Заключение

Вижте, имам ADHD и се боря с него, като автоматизирам всичко! Можете да се възползвате от същата стратегия при по-бързо време за разработка на приложения, като грабнете всички ниско висящи плодове във форми на неща и процеси, които трябва да бъдат автоматизирани. Интернализирането на приложение Flutter е един от процесите, които трябва да автоматизирате.

За мен, Фред Грот

Аз съм преформиран роден разработчик на приложения за Android и преформиран ADHD Creative.

Има два типа хора на този свят, потребители и творци. Потребителите имат всички проблеми на света с цялата тази некреативна позиция в мозъците си. Творците живеят по-интересен жизнен живот, пълен с творчески мечти, вместо с отрова в главите си.

Текущите ми безплатни неща за flutter като код и творчески активи са в моето хранилище на GitHub за код с мен на адрес:



Както в Front End Development, така и в Creative Life контекстите и пътят имат скъпоценни камъни от прозрение, което не е от вашите собствени пътища. За да получите тази представа, имате нужда от достъп до моите статии в тези прости две стъпки:

1. Регистрирайте се за платен среден абонамент на моята връзка за абонамент:



Имайте предвид, че всъщност получавам намаление на приходите за всеки абонамент за Medium, което ми помага да създам безплатния код и творческите неща, до които получавате безплатен достъп.

2. Щракнете върху името ми в Medium и ме последвайте, за да получавате незабавни имейл известия всеки път, когато публикувам:



Моите най-популярни публикации за Flutter и Creative Life:

Потребителски интерфейси на Flutter



















Flutter DevOPS























Flutter OOP и FP



















Творчески живот







Можете да ме последвате на