Подскажите как лучше реализовать поддержку нескольких языков в приложении? Пока

вижу вариант как создание стрингов для каждого языка в ресурсах и читать их. Но это для вьюх я такое знаю, может есть новое для компоса?

6 ответов

7 просмотров

Ничего нового -- тоже несколько строк на каждый язык в ресурсах. Если есть нужда в мультиплатформе -- есть несколько либ на выбор, которые заменят ресурсы на мультиплатформенное решение.

Andrew Mikhaylov
Ничего нового -- тоже несколько строк на каждый яз...

А напомните пожалуйста какие еще кроме moko есть. Помню какие то слышал, но не помню какие)

я сделаль для каждого скрина отдельный нитерфейс interface BaseStrings interface SomeScreenStrings: BaseStrings{ val someLabel: String } interface SomeScreen2Strings: BaseStrings{ val someLabel2: String } interface StringsScope<T: BaseStrings> { val stringClz: KClass<T> } internal class RussianStrings: SomeScreenStrings, SomeScreen2Strings { override val someLabel = "Строка 1" override val someLabel2 = "Строка 2" } internal class EnglishStrings: SomeScreenStrings, SomeScreen2Strings { override val someLabel = "Label 1" override val someLabel2 = "Label 2" } class ScreenComponent: StringsScope<SomeScreenStrings> { override val stringClz = SomeScreenStrings::class } @Composable fun ScreenContent(component: ScreenComponent){ Text(text = component.string { someLabel } ) } @Composable inline fun <reified T : BaseStrings> StringsScope<T>.string( factory: T.() -> String, ): String = stringClz.string(factory) @Composable @Suppress("UnusedReceiverParameter") inline fun <reified T : BaseStrings> KClass<T>.string( factory: T.() -> String, ): String { val localStrings = LocalStrings.current return if (localStrings is T) factory(localStrings) else "interface not implemented" }

Наблюдатель-® ] Автор вопроса
Наблюдатель ® ]
Легче застрелиться тогда)

Лучше так никогда не делать, как выше на сниппете написали

Похожие вопросы

Обсуждают сегодня

Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Ребят, привет. У кого-то есть опыт заказа мерча в сторе? Есть успешные кейсы? Чёт у меня турецкую карту не принимает
Vladimir F.
7
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
У тебя в конфиге нигде нет deny all; или вообще любого deny?
Alexander Sherbakov
10
Всем привет. Есть кто разбирается в платежках? Что б принимать из других стран и выплачивать рф снг
Musa
6
Портфолио: Зовут меня Александр, мне 41 год. Город Киров. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github.co...
Magic
11
Приветствую всех, есть вопросик. Передали проект на OctoberCms, без инсталяшки в полуразвернутом виде, нужно было залить бекап бд, после залития бд, оказалось, что части строк...
Лео
14
Есть магистры regex в чате? Задача: нужно написать regex который мэтчит полные (без сокращений по типу ::1/128) ipv6 адреса кроме 2001:0df7:cef7:29f7:52f7:adf7:2cf7:4ff7, при ...
Илья
5
Подскажите, пожалуйста, где в backende, или не в нем можно дату поправить? Логирует действия не в том часовом поясе
Лео
7
посыпаю голову пеплом =) https://docs.vapor.codes/advanced/files/?h=stream#files
Seryoga
10
Карта сайта