chore: update l10n (#1138)

This commit is contained in:
Diego Beraldin 2024-07-14 23:33:23 +02:00 committed by GitHub
parent c2ef6484c0
commit ba91d3a410
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
11 changed files with 201 additions and 47 deletions

View File

@ -84,6 +84,7 @@ class LanguageBottomSheet : Screen {
Locales.TOK,
Locales.TR,
Locales.UK,
Locales.ZH_CN,
Locales.ZH_TW,
Locales.ZH_HK,
)

View File

@ -431,8 +431,9 @@ internal open class DefaultStrings : Strings {
override val settingsItemAlternateMarkdownRendering = "Enable alternate Markdown rendering"
override val settingsItemConfigureBottomNavigationBar = "Configure bottom navigation bar"
override val selectTabNavigationTitle = "Select a section"
override val messageAuthIssueSegue =
"You could try one of the following actions:\n• force refresh\n• log in again\n• clear the application data"
override val messageAuthIssueSegueHighlight1 = "force refresh"
override val messageAuthIssueSegueHighlight2 = "log in again"
override val messageAuthIssueSegue0 =
"You could try one of the following actions:"
override val messageAuthIssueSegue1 = "force refresh"
override val messageAuthIssueSegue2 = "log in again"
override val messageAuthIssueSegue3 = "clear the application data"
}

View File

@ -106,7 +106,8 @@ internal val EsStrings =
override val manageAccountsTitle = "Gestionar cuentas"
override val manageSubscriptionsHeaderMulticommunities = "Multi-comunidades"
override val manageSubscriptionsHeaderSubscriptions = "Suscripciones"
override val messageEmptyComments = "Nada que ver por aquí.\n¡Sé el primero en comentar!"
override val messageEmptyComments =
"Aquí hay demasiado silencio.\n¿Te gustaría ser el primero en comentar?"
override val messageEmptyList = "Ningún elemento para mostrar"
override val messageErrorLoadingComments = "Error al cargar los comentarios."
override val messageGenericError = "Error"
@ -336,7 +337,7 @@ internal val EsStrings =
override val moderatorZoneTitle = "Herramientas para moderadores"
override val moderatorZoneActionContents = "Contenidos por moderar"
override val messageAuthIssue =
"Se produjo un error al obtener los datos del usuario, intente actualizar la pantalla"
"Se ha producido un error al obtener los datos, posiblemente tu token ha caducado."
override val banReasonPlaceholder = "Razón (opcional)"
override val banItemPermanent = "Prohibición permanente"
override val banItemRemoveData = "Eliminar datos"
@ -445,4 +446,9 @@ internal val EsStrings =
override val settingsItemConfigureBottomNavigationBar =
"Configurar la barra de navegación inferior"
override val selectTabNavigationTitle = "Seleccionar una sección"
override val messageAuthIssueSegue0 =
"Puedes intentar una de las siguientes acciones:"
override val messageAuthIssueSegue1 = "forzar actualización"
override val messageAuthIssueSegue2 = "volver a iniciar sesión"
override val messageAuthIssueSegue3 = "borrar los datos de la aplicación"
}

View File

@ -337,7 +337,7 @@ internal val ItStrings =
override val moderatorZoneTitle = "Strumenti per moderatori"
override val moderatorZoneActionContents = "Contenuti da moderare"
override val messageAuthIssue =
"Si è verificato un errore nel recupero dei dati utente, fare refresh della schermata"
"Si è verificato un errore nel recupero dei dati, è possibile che il token attuale sia scaduto."
override val banReasonPlaceholder = "Motivazione (opzionale)"
override val banItemPermanent = "Ban permanente"
override val banItemRemoveData = "Rimuovi dati"
@ -442,4 +442,12 @@ internal val ItStrings =
"Se un post ha un URL, apri pagina web al click sull\'immagine"
override val settingsItemAlternateMarkdownRendering =
"Abilita rendering Markdown alternativo"
override val selectTabNavigationTitle = "Seleziona una sezione"
override val settingsItemConfigureBottomNavigationBar =
"Configura barra di navigazione inferiore"
override val messageAuthIssueSegue0 =
"Si consiglia di intraprendere una delle seguenti azioni:"
override val messageAuthIssueSegue1 = "forzare l\'aggiornamento"
override val messageAuthIssueSegue2 = "effettuare nuovamente l\'accesso"
override val messageAuthIssueSegue3 = " cancellare i dati dell\'applicazione"
}

View File

@ -429,9 +429,10 @@ interface Strings {
val settingsItemAlternateMarkdownRendering: String
val settingsItemConfigureBottomNavigationBar: String
val selectTabNavigationTitle: String
val messageAuthIssueSegue: String
val messageAuthIssueSegueHighlight1: String
val messageAuthIssueSegueHighlight2: String
val messageAuthIssueSegue0: String
val messageAuthIssueSegue1: String
val messageAuthIssueSegue2: String
val messageAuthIssueSegue3: String
}
object Locales {
@ -470,6 +471,7 @@ object Locales {
const val NB = "nb"
const val NN = "nn"
const val MT = "mt"
const val ZH_CN = "zh_CN"
const val ZH_TW = "zh_TW"
const val ZH_HK = "zh_HK"
}
@ -511,6 +513,7 @@ internal val localizableStrings: Map<LanguageTag, Strings> =
Locales.TOK to TokStrings,
Locales.TR to TrStrings,
Locales.UK to UkStrings,
Locales.ZH_CN to ZhCnStrings,
Locales.ZH_HK to ZhHkStrings,
Locales.ZH_TW to ZhTwStrings,
)

View File

@ -335,7 +335,7 @@ internal val TokStrings =
override val moderatorZoneTitle = "ilo tawa jan lawa"
override val moderatorZoneActionContents = "ijo pi kulupu lawa"
override val messageAuthIssue =
"kama sona ijo la, pakala wan li lon. o lukin open e lipu ni lon tenpo nanpa tu"
"kama sona ijo la, pakala li lon. ken la, toki lawa sina li weka."
override val banReasonPlaceholder = "Tan (sina wile la)"
override val banItemPermanent = "lon tenpo ale"
override val banItemRemoveData = "o weka e sona"
@ -427,4 +427,16 @@ internal val TokStrings =
"o kepeken e sitelen jan tawa sitelen lili pi linja anpa"
override val settingsItemRandomThemeColor = "o ante e kule lon tempo ale"
override val settingsSubtitleRandomThemeColor = "open e ilo nanpa ni la, o ante e kule"
override val settingsItemOpenPostWebPageOnImageClick =
"sina luka e sitelen lipu la, o open e linluwi"
override val settingsSubtitleOpenPostWebPageOnImageClick =
"lipu li jo e sitelen wan la, luka e sitelen la, o open e linluwi"
override val settingsItemAlternateMarkdownRendering =
"o kepeken e nanpa ante pi ilo Makadon"
override val settingsItemConfigureBottomNavigationBar = "o ante e lukin pi linja anpa"
override val selectTabNavigationTitle = "o anu e ijo wan"
override val messageAuthIssueSegue0 = "sina ken lukin e ni:"
override val messageAuthIssueSegue1 = "o kama sona lon tenpo nanpa tu"
override val messageAuthIssueSegue2 = "o tawa insa lon tenpo nanpa tu"
override val messageAuthIssueSegue3 = "o weka e sona pi ilo nanpa ni"
}

View File

@ -0,0 +1,124 @@
package com.github.diegoberaldin.raccoonforlemmy.core.l10n.messages
internal val ZhCnStrings =
object : DefaultStrings() {
override val actionBackToTop = "回到顶部"
override val actionChat = "发送消息"
override val actionClearRead = "清除已读"
override val actionCreatePost = "发新帖"
override val actionReply = "回复"
override val actionDeactivateZombieMode = "关闭僵尸模式"
override val buttonClose = "关闭"
override val buttonConfirm = "确定"
override val buttonLoad = "加载"
override val buttonReset = "重设"
override val buttonRetry = "重试"
override val commentActionDelete = "删除"
override val communityDetailBlock = "屏蔽"
override val communityDetailBlockInstance = "屏蔽实例"
override val communityDetailInfo = "社区信息"
override val communityInfoDailyActiveUsers = "活跃用户(日)"
override val communityInfoMonthlyActiveUsers = "活跃用户(月)"
override val communityInfoPosts = "帖子"
override val communityInfoSubscribers = "订阅者"
override val communityInfoWeeklyActiveUsers = "活跃用户(周)"
override val createCommentBody = "评论内容"
override val createCommentTitle = "新评论"
override val createPostBody = "帖子内容"
override val createPostCommunity = "社区"
override val createPostCrossPostText = "重发自:"
override val createPostName = "帖子标题"
override val createPostNsfw = "工作场所不宜"
override val createPostTabEditor = "编辑器"
override val createPostTabPreview = "预览"
override val createPostTitle = "新帖子"
override val createPostUrl = "网址"
override val createReportPlaceholder = "举报内容(可选)"
override val createReportTitleComment = "举报评论"
override val createReportTitlePost = "举报帖子"
override val dialogRawContentText = "文本"
override val dialogRawContentTitle = "标题"
override val dialogRawContentUrl = "网址"
override val dialogTitleChangeInstance = "更改实例"
override val dialogTitleRawContent = "原始内容"
override val dialogTitleSelectCommunity = "选择社区"
override val editPostTitle = "编辑帖子"
override val exploreResultTypeAll = "全部"
override val exploreResultTypeComments = "评论"
override val exploreResultTypeCommunities = "社区"
override val exploreResultTypePosts = "帖子"
override val exploreResultTypeUsers = "用户"
override val exploreSearchPlaceholder = "搜索"
override val homeInstanceVia = "通过"
override val homeListingTitle = "信息流"
override val homeListingTypeAll = "全部"
override val homeListingTypeLocal = "本地"
override val homeListingTypeSubscribed = "已订阅"
override val homeSortTitle = "排序方式"
override val homeSortTypeActive = "活跃"
override val homeSortTypeControversial = "有争议"
override val homeSortTypeHot = "热门"
override val homeSortTypeMostComments = "最多评论"
override val homeSortTypeOld = "旧的"
override val homeSortTypeScaled = "按活跃比例"
override val homeSortTypeTop = "最热门"
override val homeSortTypeTop12Hours = "12 小时内最热门"
override val homeSortTypeTop12HoursShort = "12 小时"
override val homeSortTypeTop6Hours = "6 小时内最热门"
override val homeSortTypeTop6HoursShort = "6 小时"
override val homeSortTypeTopDayShort = ""
override val homeSortTypeTopMonth = "本月最热门"
override val homeSortTypeTopMonthShort = ""
override val homeSortTypeTopWeek = "本周最热门"
override val homeSortTypeTopWeekShort = ""
override val homeSortTypeTopYear = "本年度最热门"
override val homeSortTypeTopYearShort = ""
override val inboxChatMessage = "消息"
override val inboxItemMention = "在此处提到你:"
override val inboxItemReplyComment = "在此处回复了你的评论:"
override val inboxItemReplyPost = "在此处回复了你的帖子:"
override val inboxListingTypeAll = "全部"
override val inboxListingTypeTitle = "收件箱类型"
override val inboxListingTypeUnread = "未读"
override val inboxNotLoggedMessage =
"你尚未登录。\n请在个人资料页添加一个账户,以查看你的收件箱。"
override val inboxSectionMentions = "提及"
override val inboxSectionMessages = "消息"
override val inboxSectionReplies = "回复"
override val instanceDetailCommunities = "社区"
override val lang = "zh_CN"
override val loginFieldInstanceName = "实例名称"
override val loginFieldLabelOptional = "(可选)"
override val instanceDetailTitle = "实例:"
override val loginFieldPassword = "密码"
override val loginFieldToken = "TOTP 两步认证代码"
override val loginFieldUserName = "用户名(或电子邮件)"
override val manageAccountsButtonAdd = "添加账户"
override val manageAccountsTitle = "管理账户"
override val manageSubscriptionsHeaderMulticommunities = "多社区"
override val manageSubscriptionsHeaderSubscriptions = "订阅"
override val messageEmptyComments = "这里仍然静悄悄。\n你要做第一个评论的人吗?"
override val messageEmptyList = "没有可显示的东西"
override val messageErrorLoadingComments = "载入评论时出错。"
override val messageMissingField = "栏位尚未填写"
override val messageOperationSuccessful = "操作成功完成"
override val multiCommunityEditorCommunities = "社区"
override val multiCommunityEditorIcon = "图标"
override val multiCommunityEditorName = "名称"
override val multiCommunityEditorTitle = "多社区编辑器"
override val navigationDrawerAnonymous = "匿名"
override val navigationDrawerTitleBookmarks = "书签"
override val navigationDrawerTitleSubscriptions = "管理订阅"
override val actionActivateZombieMode = "开启僵尸模式"
override val communityInfoComments = "评论"
override val communityDetailInstanceInfo = "实例详情"
override val homeSortTypeNew = "新发布"
override val editCommentTitle = "编辑评论"
override val homeSortTypeNewComments = "新评论"
override val homeSortTypeTopDay = "本日最热门"
override val homeSortTypeTopHour = "小时最热门"
override val homeSortTypeTopHourShort = "1 小时"
override val messageImageLoadingError = "图片载入出错"
override val messageGenericError = "常规错误"
override val messageInvalidField = "无效字段"
}

View File

@ -49,6 +49,7 @@ fun String.toLanguageName() =
Locales.TOK -> "toki pona"
Locales.TR -> "Türkçe"
Locales.UK -> "Українська"
Locales.ZH_CN -> "中文"
Locales.ZH_TW -> "正體中文"
Locales.ZH_HK -> "廣東話"
else -> "English"
@ -92,6 +93,7 @@ fun String.toLanguageFlag(): AnnotatedString =
Locales.TOK -> "🦝️"
Locales.TR -> "🇹🇷"
Locales.UK -> "🇺🇦"
Locales.ZH_CN -> "🇨🇳"
Locales.ZH_TW -> "🇹🇼"
Locales.ZH_HK -> "🇭🇰"
else -> ""

View File

@ -76,5 +76,11 @@
"avatar": "https://avatars.githubusercontent.com/u/8885837?v=4",
"subtitle": "Irish translation",
"url": "https://github.com/aindriu80"
},
{
"title": "Monstorix",
"avatar": "https://hosted.weblate.org/avatar/128/monstorix.png",
"subtitle": "Simplified Chinese translation",
"url": "https://hosted.weblate.org/user/monstorix"
}
]

View File

@ -71,6 +71,9 @@ def main():
if lang_code == "en" and len(country_code) == 0:
dest_file = "../core/l10n/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/l10n/messages/DefaultStrings.kt"
else:
# add support for formats like zh-rCN
if country_code.startswith("-r"):
country_code = country_code[2:]
dest_file = "../core/l10n/src/commonMain/kotlin/com/github/diegoberaldin/raccoonforlemmy/core/l10n/messages/{0}{1}Strings.kt".format(lang_code.capitalize(), country_code.capitalize())
convert(lang_code, country_code, source_file, dest_file)

View File

@ -165,45 +165,33 @@ object ProfileLoggedScreen : Tab {
val annotatedString =
buildAnnotatedString {
val text = LocalStrings.current.messageAuthIssueSegue
val span1 =
LocalStrings.current.messageAuthIssueSegueHighlight1
val span2 =
LocalStrings.current.messageAuthIssueSegueHighlight2
val linkStyle =
SpanStyle(
color = MaterialTheme.colorScheme.primary,
textDecoration = TextDecoration.Underline,
)
withStyle(SpanStyle(color = MaterialTheme.colorScheme.onBackground)) {
append(text)
val span1Start = text.indexOf(span1)
val span1End = span1Start + span1.length
addStringAnnotation(
tag = AuthIssueAnnotations.ANNOTATION_ACTION,
annotation = AuthIssueAnnotations.ACTION_REFRESH,
start = span1Start,
end = span1End,
append(LocalStrings.current.messageAuthIssueSegue0)
append("\n")
pushStringAnnotation(
AuthIssueAnnotations.ANNOTATION_ACTION,
AuthIssueAnnotations.ACTION_REFRESH,
)
addStyle(
SpanStyle(
color = MaterialTheme.colorScheme.primary,
textDecoration = TextDecoration.Underline,
),
span1Start,
span1End,
)
val span2Start = text.indexOf(span2)
val span2End = span2Start + span2.length
addStringAnnotation(
tag = AuthIssueAnnotations.ANNOTATION_ACTION,
annotation = AuthIssueAnnotations.ACTION_LOGIN,
start = span2Start,
end = span2End,
)
addStyle(
SpanStyle(
color = MaterialTheme.colorScheme.primary,
textDecoration = TextDecoration.Underline,
),
span2Start,
span2End,
withStyle(linkStyle) {
append(LocalStrings.current.messageAuthIssueSegue1)
}
pop()
append("\n")
pushStringAnnotation(
AuthIssueAnnotations.ANNOTATION_ACTION,
AuthIssueAnnotations.ACTION_LOGIN,
)
withStyle(linkStyle) {
append(LocalStrings.current.messageAuthIssueSegue2)
}
pop()
append("\n")
append(LocalStrings.current.messageAuthIssueSegue3)
}
}
Box(