为什么:a) 应用对外名称要统一成 FruitShorts(产品名,nontonki 是原型代号); b) 首发市场是印尼,界面必须有印尼语;c) 归档要求"新增 id-ID 与改名合并生成一次 l10n,别分两次"。 改名: - pubspec name: nontonki → fruitshorts(Dart 包名),description 同步;28 个文件的 package: 导入前缀替换 - Android android:label、iOS CFBundleDisplayName/CFBundleName → FruitShorts - 图标资源 assets/icon/nontonki.png → fruitshorts.png(含 pubspec 两处引用) - README 同步(补印尼语说明,顺带修掉写错的模块名 reelshort-app-api → fruitshorts-app-api) 文案: - 三份 arb 的 appName → FruitShorts、brandMark → FRUITSHORTS、shareFooter → FruitShorts(不留 demo 标记) - 新增 lib/l10n/app_id.arb:174 个值键与 en/zh 完全一致,按印尼语习惯翻译(Coin→Koin、Episode→Episode) - 一次性 flutter gen-l10n 生成 app_localizations_id.dart;id 自动进入 supportedLocales,默认 locale 未改 - 新增 test/config/l10n_id_test.dart:钉住 id 文案、supportedLocales 含 id、品牌文案无 demo 标记、占位符渲染 不动:applicationId / bundle id(lumadrama 遗留,等裁定)、目录名、业务逻辑与页面结构、语言选择页(仍只有 en/zh) 门禁:dart analyze lib test 零告警;flutter test 159 全过(基线 155 + 新增 4);残留扫描 0 命中; 三份 arb 键集一致(174/174/174);真机(iPhone iOS 26.6.1)构建安装启动成功,devicectl 列出显示名 FruitShorts
180 lines
6.6 KiB
Plaintext
180 lines
6.6 KiB
Plaintext
{
|
|
"@@locale": "zh",
|
|
"appName": "FruitShorts",
|
|
"demo": "演示",
|
|
"homeHeadline": "即刻观看",
|
|
"homeSubtitle": "免费短剧预览。",
|
|
"mediaNotice": "用户提供的本地演示视频 · 免费观看",
|
|
"featuredDemo": "精选 · 技术演示",
|
|
"demoTitle": "信号",
|
|
"demoSynopsis": "使用本地视频进行播放预览,后续有素材再增加剧集。",
|
|
"homeTab": "首页",
|
|
"openQuickMenu": "打开快捷菜单",
|
|
"quickAccess": "快捷入口",
|
|
"currentSeries": "当前短剧",
|
|
"discoverTab": "找剧",
|
|
"searchDiscover": "搜索短剧、演员、类型…",
|
|
"featured": "精选",
|
|
"suspense": "悬疑",
|
|
"romance": "都市爱情",
|
|
"actionGenre": "动作",
|
|
"filter": "筛选",
|
|
"topCharts": "排行榜",
|
|
"newReleases": "新剧",
|
|
"trendingMicroDramas": "热门短剧",
|
|
"seeAll": "查看全部",
|
|
"artworkOnly": "海报展示",
|
|
"artworkOnlyNotice": "这张海报仅用于目录展示,暂时没有可播放视频。",
|
|
"videoPending": "视频待提供",
|
|
"watchNow": "免费观看",
|
|
"noSearchResults": "没有匹配的短剧。",
|
|
"demoCatalogNotice": "三部演示短剧共用同一条本地视频。",
|
|
"myTab": "我的",
|
|
"localViewer": "本地观众",
|
|
"localDemoProfile": "本地演示档案",
|
|
"continueWatching": "继续观看",
|
|
"watchedPercent": "已观看 {percent}%",
|
|
"@watchedPercent": {"placeholders": {"percent": {"type": "int"}}},
|
|
"resume": "继续播放",
|
|
"history": "历史",
|
|
"watchlist": "追剧",
|
|
"likedTab": "喜欢",
|
|
"all": "全部",
|
|
"inProgress": "未看完",
|
|
"completed": "已看完",
|
|
"noSavedShows": "这里还没有剧集。",
|
|
"preferences": "偏好设置",
|
|
"appLanguage": "应用语言",
|
|
"followingTab": "关注",
|
|
"animatedTab": "漫剧",
|
|
"recommendedTab": "推荐",
|
|
"noCategoryDramas": "这个分类暂时没有剧集。",
|
|
"trendingTab": "热门",
|
|
"liveActionTab": "真人剧",
|
|
"search": "搜索",
|
|
"free": "免费",
|
|
"mute": "静音",
|
|
"unmute": "取消静音",
|
|
"like": "喜欢",
|
|
"save": "收藏",
|
|
"comments": "评论",
|
|
"share": "分享",
|
|
"localOnlyComments": "仅在本机可见",
|
|
"noComments": "还没有评论。",
|
|
"writeComment": "写评论",
|
|
"postComment": "发布",
|
|
"shareFailed": "无法打开系统分享面板。",
|
|
"nowPlaying": "正在播放",
|
|
"watchFullscreen": "横屏全屏观看",
|
|
"exitFullscreen": "退出全屏",
|
|
"pictureInPicture": "画中画",
|
|
"pipUnavailable": "此设备无法使用画中画",
|
|
"originalTag": "原创",
|
|
"dramaTag": "短剧",
|
|
"episodeLabel": "第 {number} 集",
|
|
"@episodeLabel": {"placeholders": {"number": {"type": "int"}}},
|
|
"exploreSeries": "查看剧集",
|
|
"episodeCount": "{count} 集",
|
|
"technicalDemoCount": "免费试看 · {count} 集",
|
|
"episodes": "选集",
|
|
"watchEpisodeOne": "观看第 1 集",
|
|
"continueEpisode": "续看第 {number} 集",
|
|
"freeTestMedia": "复用同一演示视频 · 免费",
|
|
"lockedStoreUnavailable": "已锁定 · 商店未配置",
|
|
"freeTestClip": "免费测试片",
|
|
"locked": "已锁定",
|
|
"freeSamplesNotice": "前两集免费 · 商店配置待完成",
|
|
"demoTestMedia": "免费 · 同一演示视频",
|
|
"episodeProgress": "第 {number} / {total} 集",
|
|
"testVideoNotice": "自行生成的技术测试视频",
|
|
"lockedTitle": "第 {number} 集已锁定",
|
|
"lockedBody": "完成商店与服务端验单配置后才能解锁。本演示目前不处理付款。",
|
|
"playbackError": "此视频暂时无法播放。",
|
|
"catalogError": "剧目列表加载失败。",
|
|
"detailError": "剧集信息加载失败。",
|
|
"noMediaNotice": "该剧集还没有可播放的片源。",
|
|
"noStories": "暂无剧目。",
|
|
"retry": "重试",
|
|
"backToSeries": "返回剧集详情",
|
|
"nextEpisode": "下一集",
|
|
"pause": "暂停",
|
|
"play": "播放",
|
|
"seekVideo": "拖动播放进度",
|
|
"seekFailed": "无法调整播放进度。",
|
|
"captions": "字幕",
|
|
"captionsOff": "关闭字幕",
|
|
"englishCaptions": "英文字幕",
|
|
"chineseCaptions": "简体中文字幕",
|
|
"language": "界面语言",
|
|
"systemLanguage": "跟随系统",
|
|
"english": "English",
|
|
"simplifiedChinese": "简体中文",
|
|
"episodeOneTitle": "初见微光",
|
|
"episodeTwoTitle": "新的频率",
|
|
"episodeThreeTitle": "越过边界",
|
|
"episodeFourTitle": "回声之后",
|
|
"dramaSignalTitle": "信号",
|
|
"dramaSignalSynopsis": "一部竖屏连播的演示短剧,每一集都使用同一段本地视频。",
|
|
"dramaCityTitle": "都市灯火与丝绒夜",
|
|
"dramaCitySynopsis": "一部都市爱情演示短剧,用同一段本地视频体验切换和续看。",
|
|
"dramaVengeanceTitle": "复仇崛起",
|
|
"dramaVengeanceSynopsis": "一部动作演示短剧,用同一段本地视频体验切换和续看。",
|
|
"dramaEchoesTitle": "命运回声",
|
|
"genreSuspenseMystery": "悬疑 · 推理",
|
|
"genreUrbanRomance": "都市爱情",
|
|
"genreActionThriller": "动作 · 惊悚",
|
|
"genreDramaMystery": "剧情 · 悬疑",
|
|
"continueWatchingHeading": "继续观看",
|
|
"preferencesHeading": "偏好设置",
|
|
"brandMark": "FRUITSHORTS",
|
|
"shareFooter": "FruitShorts",
|
|
"shortsTab": "短剧",
|
|
"myListTab": "片单",
|
|
"watchFull": "看全集",
|
|
"swipeForNext": "上滑看下一部",
|
|
"clearScreen": "清屏",
|
|
"exitClearScreen": "退出清屏",
|
|
"logIn": "登录",
|
|
"logInHint": "登录后保存金币和片单",
|
|
"rewards": "奖励",
|
|
"forYou": "为你推荐",
|
|
"hot": "热门",
|
|
"newest": "最新",
|
|
"favorite": "收藏",
|
|
"myAccount": "我的账户",
|
|
"coins": "金币",
|
|
"topUpWallet": "充值",
|
|
"vipMembership": "会员",
|
|
"notActive": "未开通",
|
|
"joinVip": "开通会员",
|
|
"earnRewards": "赚奖励",
|
|
"freeBonus": "领免费奖励",
|
|
"watchHistory": "观看历史",
|
|
"settings": "设置",
|
|
"signOut": "退出登录",
|
|
"mockUserName": "Vicky sheng",
|
|
"mockUserId": "ID: M1CZWVYE",
|
|
"mockNotice": "当前是示例数据。",
|
|
"topBadge": "TOP 1",
|
|
"signIn": "登录",
|
|
"signUp": "注册",
|
|
"authSignInTitle": "欢迎回来",
|
|
"authSignUpTitle": "创建账号",
|
|
"authSubtitle": "用邮箱和密码登录。",
|
|
"authEmailLabel": "邮箱",
|
|
"authPasswordLabel": "密码",
|
|
"authPasswordHint": "至少 8 位,需包含字母和数字",
|
|
"authEmailRequired": "请输入邮箱",
|
|
"authEmailInvalid": "邮箱格式不正确",
|
|
"authPasswordRequired": "请输入密码",
|
|
"authPasswordLength": "密码长度需在 8-64 位之间",
|
|
"authPasswordWeak": "密码需同时包含字母和数字",
|
|
"authNetworkError": "网络异常,请稍后重试",
|
|
"authSwitchToSignUp": "还没有账号?去注册",
|
|
"authSwitchToSignIn": "已有账号?去登录",
|
|
"authGateTitle": "登录后可继续",
|
|
"authGateMessage": "收藏、评论等操作需要登录。",
|
|
"authGateAction": "去登录",
|
|
"cancel": "暂不"
|
|
}
|