Repository navigation
Expand file tree
/
Copy pathi18n.ts
More file actions
412 lines (397 loc) · 21.5 KB
/
Copy pathi18n.ts
File metadata and controls
412 lines (397 loc) · 21.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
"use client";
import { createContext, useContext } from "react";
export type Lang = "ja" | "en" | "zh";
export const LANGS: { key: Lang; label: string }[] = [
{ key: "ja", label: "日本語" },
{ key: "en", label: "English" },
{ key: "zh", label: "中文" },
];
export const isLang = (v: unknown): v is Lang => v === "ja" || v === "en" || v === "zh";
/* A module-level copy lets non-React helpers (item defaults, prompt text)
* follow the language without threading it through every call. */
let current: Lang = "ja";
export const getLang = () => current;
export const setGlobalLang = (l: Lang) => {
current = l;
};
export const LangContext = createContext<Lang>("ja");
export const useLang = () => useContext(LangContext);
type Str = { ja: string; en: string; zh: string };
const UI = {
// panels
parts: { ja: "部品", en: "Parts", zh: "组件" },
layers: { ja: "レイヤー", en: "Layers", zh: "图层" },
edit: { ja: "編集", en: "Edit", zh: "编辑" },
prompt: { ja: "プロンプト", en: "Prompt", zh: "提示词" },
closePanel: { ja: "パネルを閉じる", en: "Close panel", zh: "关闭面板" },
search: { ja: "検索", en: "Search", zh: "搜索" },
favorites: { ja: "お気に入り", en: "Favorites", zh: "收藏" },
addFavorite: { ja: "お気に入りに追加", en: "Add to favorites", zh: "添加到收藏" },
removeFavorite: { ja: "お気に入りから外す", en: "Remove from favorites", zh: "取消收藏" },
clear: { ja: "クリア", en: "Clear", zh: "清除" },
language: { ja: "言語", en: "Language", zh: "语言" },
// toolbar
select: { ja: "選択 (V)", en: "Select (V)", zh: "选择 (V)" },
hand: { ja: "手のひら (H / Space)", en: "Hand (H / Space)", zh: "抓手 (H / Space)" },
blank: { ja: "白紙", en: "Blank canvas", zh: "空白画布" },
phone: { ja: "スマホ画面", en: "Phone screens", zh: "手机屏幕" },
addFrame: { ja: "画面を追加", en: "Add screen", zh: "添加屏幕" },
preview: { ja: "プレビュー (P)", en: "Preview (P)", zh: "预览 (P)" },
zoomIn: { ja: "拡大 (+)", en: "Zoom in (+)", zh: "放大 (+)" },
zoomOut: { ja: "縮小 (-)", en: "Zoom out (-)", zh: "缩小 (-)" },
fit: { ja: "全体を表示 (0)", en: "Fit (0)", zh: "适应窗口 (0)" },
undo: { ja: "元に戻す (Ctrl+Z)", en: "Undo (Ctrl+Z)", zh: "撤销 (Ctrl+Z)" },
redo: { ja: "やり直す (Ctrl+Shift+Z)", en: "Redo (Ctrl+Shift+Z)", zh: "重做 (Ctrl+Shift+Z)" },
clearAll: { ja: "すべて消す", en: "Clear canvas", zh: "全部清除" },
clearAllTitle: { ja: "すべて消しますか?", en: "Clear the canvas?", zh: "要全部清除吗?" },
clearAllBody: {
ja: "すべての画面と部品を削除します。元に戻す (Ctrl+Z) で復元できます。",
en: "Every screen and part will be removed. Undo (Ctrl+Z) can bring them back.",
zh: "将删除所有屏幕和组件。可以用撤销 (Ctrl+Z) 恢复。",
},
// inspector
screen: { ja: "画面", en: "Screen", zh: "屏幕" },
screenName: { ja: "画面の名前", en: "Screen name", zh: "屏幕名称" },
name: { ja: "名前", en: "Name", zh: "名称" },
background: { ja: "背景", en: "Background", zh: "背景" },
export: { ja: "書き出し", en: "Export", zh: "导出" },
copied: { ja: "コピーしました", en: "Copied", zh: "已复制" },
saveImage: { ja: "画像で保存", en: "Save as image", zh: "保存为图片" },
saving: { ja: "保存中…", en: "Saving…", zh: "保存中…" },
previewFrom: { ja: "この画面からプレビュー", en: "Preview from this screen", zh: "从此屏幕预览" },
duplicate: { ja: "複製", en: "Duplicate", zh: "复制" },
duplicateKey: { ja: "複製 (Ctrl+D)", en: "Duplicate (Ctrl+D)", zh: "复制 (Ctrl+D)" },
delete: { ja: "削除 (Delete)", en: "Delete (Delete)", zh: "删除 (Delete)" },
deleteSelection: { ja: "選択を削除", en: "Delete selection", zh: "删除所选" },
text: { ja: "テキスト", en: "Text", zh: "文本" },
label: { ja: "ラベル", en: "Label", zh: "标签" },
bold: { ja: "太字", en: "Bold", zh: "粗体" },
action: { ja: "アクション", en: "Action", zh: "操作" },
supporting: { ja: "サブテキスト", en: "Supporting text", zh: "辅助文本" },
tabs: { ja: "項目", en: "Items", zh: "项目" },
changeIcon: { ja: "アイコンを変更", en: "Change icon", zh: "更改图标" },
image: { ja: "画像", en: "Image", zh: "图片" },
pickImage: { ja: "画像を選ぶ", en: "Choose image", zh: "选择图片" },
removeImage: { ja: "画像を外す", en: "Remove image", zh: "移除图片" },
icon: { ja: "アイコン", en: "Icon", zh: "图标" },
noIcon: { ja: "アイコンなし", en: "No icon", zh: "无图标" },
searchIcons: { ja: "アイコンを検索", en: "Search icons", zh: "搜索图标" },
style: { ja: "スタイル", en: "Style", zh: "样式" },
state: { ja: "状態", en: "State", zh: "状态" },
selected: { ja: "選択", en: "Selected", zh: "已选中" },
handle: { ja: "ハンドル(ボトムシート)", en: "Handle (bottom sheet)", zh: "拖动条(底部面板)" },
on: { ja: "オン", en: "On", zh: "开" },
container: { ja: "コンテナ", en: "Container", zh: "容器" },
wavy: { ja: "波形", en: "Wavy", zh: "波浪形" },
determinate: { ja: "確定", en: "Determinate", zh: "确定进度" },
size: { ja: "サイズ", en: "Size", zh: "尺寸" },
width: { ja: "幅", en: "Width", zh: "宽度" },
height: { ja: "高さ", en: "Height", zh: "高度" },
fontSize: { ja: "文字サイズ", en: "Font size", zh: "字号" },
cornerRadius: { ja: "角丸", en: "Corner radius", zh: "圆角" },
cornerTop: { ja: "上の角丸", en: "Top corners", zh: "上方圆角" },
cornerBottom: { ja: "下の角丸", en: "Bottom corners", zh: "下方圆角" },
screenWidth: { ja: "画面いっぱい", en: "Screen width", zh: "全屏宽" },
contentWidth: { ja: "左右 16dp の余白", en: "16dp side margins", zh: "左右 16dp 边距" },
halfWidth: { ja: "2 列に並べる幅", en: "Half a row (two columns)", zh: "两列宽" },
screenHeight: { ja: "画面の高さ", en: "Screen height", zh: "全屏高" },
halfHeight: { ja: "画面の半分", en: "Half the screen", zh: "半屏高" },
tapTo: { ja: "タップで移動", en: "Tap to open", zh: "点击跳转" },
none: { ja: "なし", en: "None", zh: "无" },
goBack: { ja: "戻る", en: "Back", zh: "返回" },
swipeTo: { ja: "スワイプで移動", en: "Swipe to open", zh: "滑动跳转" },
toggle: { ja: "切り替えボタン", en: "Toggle button", zh: "切换按钮" },
toggleHint: { ja: "タップでオン/オフ", en: "Tap toggles on / off", zh: "点击切换开/关" },
thumbCheck: { ja: "オンのときチェックアイコン", en: "Check icon when on", zh: "开启时显示勾选图标" },
behavior: { ja: "振る舞い", en: "Behavior", zh: "行为" },
whenPressed: { ja: "押したとき…", en: "When pressed…", zh: "按下时…" },
whatItDoes: { ja: "この部品の動き…", en: "What this part does…", zh: "这个组件的作用…" },
removeLink: { ja: "リンクを外す", en: "Remove link", zh: "移除链接" },
group: { ja: "グループ", en: "Group", zh: "组" },
makeGroup: { ja: "グループ化", en: "Group", zh: "编组" },
ungroup: { ja: "グループ解除", en: "Ungroup", zh: "取消编组" },
selectedParts: { ja: "個を選択中", en: "selected", zh: "个已选中" },
groupHint: {
ja: "重なりを保ったまま、ひとつのレイヤーとして一緒に動かせます",
en: "Keeps the overlap and moves as one layer",
zh: "保持叠放关系,作为一个图层一起移动",
},
iconBackground: { ja: "アイコンの背景", en: "Icon background", zh: "图标背景" },
noBackground: { ja: "背景なし", en: "No background", zh: "无背景" },
normalState: { ja: "通常", en: "Normal", zh: "常态" },
onState: { ja: "オン", en: "On", zh: "开启" },
onStateHint: { ja: "オンのときの文字・アイコン・スタイル", en: "Text, icon and style when on", zh: "开启时的文字、图标和样式" },
groupEditNote: { ja: "中の部品を編集するにはグループを解除してください", en: "Ungroup to edit the parts inside", zh: "要编辑其中的组件,请先取消编组" },
openPanel: { ja: "パネルを開く", en: "Open panel", zh: "打开面板" },
colors: { ja: "カラー", en: "Colors", zh: "配色" },
templates: { ja: "パレット", en: "Palettes", zh: "调色板" },
customColor: { ja: "カスタム", en: "Custom", zh: "自定义" },
seedColor: { ja: "ベースの色", en: "Seed color", zh: "基准色" },
seedHint: {
ja: "1 色選ぶと Material 3 のスキーム全体を作ります。細かく調整で個別の色も変えられます。",
en: "One color builds the whole Material 3 scheme. Fine-tune changes single roles.",
zh: "选一个颜色即可生成整套 Material 3 配色。可在微调中单独修改。",
},
useThis: { ja: "この色にする", en: "Use it", zh: "使用" },
fineTune: { ja: "細かく調整", en: "Fine-tune", zh: "微调" },
dynamicColor: { ja: "ダイナミックカラー", en: "Dynamic color", zh: "动态配色" },
dynamicOnHint: {
ja: "ここの色はエディタ上だけ。実機では壁紙の色になります。",
en: "These colors are editor-only; the phone uses its wallpaper colors.",
zh: "这些颜色仅用于编辑器,手机上会使用壁纸颜色。",
},
dynamicOffHint: {
ja: "オンにすると実機は壁紙の色を使い、ここの色は予備になります。",
en: "When on, the phone uses wallpaper colors and these are the fallback.",
zh: "开启后手机使用壁纸颜色,这里的颜色作为备用。",
},
closeBtn: { ja: "閉じる", en: "Close", zh: "关闭" },
screens: { ja: "画面を選ぶ", en: "Choose screen", zh: "选择屏幕" },
// layers
layerUp: { ja: "前面へ", en: "Bring forward", zh: "上移一层" },
layerDown: { ja: "背面へ", en: "Send backward", zh: "下移一层" },
noLayers: { ja: "この画面には部品がありません", en: "Nothing on this screen yet", zh: "此屏幕还没有组件" },
// prompt panel
brief: { ja: "この画面の目的や全体の動き…", en: "Purpose of this screen, overall flow…", zh: "这个屏幕的用途和整体流程…" },
copyPrompt: { ja: "プロンプトをコピー", en: "Copy prompt", zh: "复制提示词" },
// preview
back: { ja: "戻る", en: "Back", zh: "返回" },
close: { ja: "閉じる (Esc)", en: "Close (Esc)", zh: "关闭 (Esc)" },
// parts content
cancel: { ja: "キャンセル", en: "Cancel", zh: "取消" },
ok: { ja: "OK", en: "OK", zh: "确定" },
leading: { ja: "先頭", en: "Leading", zh: "前置" },
trailing: { ja: "末尾", en: "Trailing", zh: "后置" },
// frames
home: { ja: "ホーム", en: "Home", zh: "首页" },
screenN: { ja: "画面", en: "Screen", zh: "屏幕" },
copySuffix: { ja: " コピー", en: " copy", zh: " 副本" },
// mobile
mobileNote: { ja: "フル機能は PC のブラウザで使えます", en: "Full features on a desktop browser", zh: "完整功能请在电脑浏览器中使用" },
addButton: { ja: "ボタンを追加", en: "Add button", zh: "添加按钮" },
done: { ja: "完了", en: "Done", zh: "完成" },
theme: { ja: "テーマ", en: "Theme", zh: "主题" },
settings: { ja: "テーマと設定", en: "Theme and settings", zh: "主题与设置" },
// theme panels
shape: { ja: "シェイプ", en: "Shape", zh: "形状" },
typography: { ja: "タイポグラフィ", en: "Type", zh: "字体" },
motion: { ja: "モーション", en: "Motion", zh: "动效" },
brightness: { ja: "明るさ", en: "Brightness", zh: "明暗" },
light: { ja: "ライト", en: "Light", zh: "浅色" },
dark: { ja: "ダーク", en: "Dark", zh: "深色" },
contrast: { ja: "コントラスト", en: "Contrast", zh: "对比度" },
bothModes: { ja: "両対応", en: "Both", zh: "两者" },
contrastStandard: { ja: "標準", en: "Standard", zh: "标准" },
contrastMedium: { ja: "中", en: "Medium", zh: "中" },
contrastHigh: { ja: "高", en: "High", zh: "高" },
shapeScale: { ja: "角丸の度合い", en: "Corner roundness", zh: "圆角程度" },
shapeSquare: { ja: "スクエア", en: "Square", zh: "方形" },
shapeRounded: { ja: "標準", en: "Rounded", zh: "圆角" },
shapeFull: { ja: "フル", en: "Full", zh: "全圆" },
shapeHint: {
ja: "すべての部品の初期の角丸をまとめて変えます。部品ごとに入力した角丸はそのまま残ります。",
en: "Changes the default corners of every part at once. A radius you typed on a part stays as it is.",
zh: "统一改变所有组件的默认圆角。已为单个组件输入的圆角保持不变。",
},
fontFamily: { ja: "書体", en: "Typeface", zh: "字体" },
emphasized: { ja: "強調スタイル", en: "Emphasized", zh: "强调样式" },
emphasizedHint: {
ja: "見出しやラベルを M3 Expressive の太めのスタイルにします。",
en: "Headlines and labels use the heavier M3 Expressive styles.",
zh: "标题和标签使用 M3 Expressive 的加粗样式。",
},
motionScheme: { ja: "動きの種類", en: "Motion scheme", zh: "动效方案" },
motionStandard: { ja: "スタンダード", en: "Standard", zh: "标准" },
motionExpressive: { ja: "エクスプレッシブ", en: "Expressive", zh: "富有表现力" },
motionHint: {
ja: "エクスプレッシブは弾むスプリング。プレビューの画面遷移とプロンプトに反映されます。",
en: "Expressive is a bouncy spring. It drives the preview transitions and the prompt.",
zh: "富有表现力为弹性弹簧动效,作用于预览的屏幕过渡和提示词。",
},
tryIt: { ja: "タップして確認", en: "Tap to try", zh: "点击试试" },
} as const satisfies Record<string, Str>;
export type UIKey = keyof typeof UI;
export const t = (key: UIKey, lang: Lang = current): string => UI[key][lang];
/* ---- part defaults and nouns ---- */
export const KIND_TEXT: Record<
Lang,
Record<string, { noun: string; label?: string; supporting?: string }>
> = {
ja: {
box: { noun: "ボックス" },
button: { noun: "ボタン", label: "ボタン" },
iconButton: { noun: "アイコンボタン" },
fab: { noun: "FAB(フローティングボタン)" },
extendedFab: { noun: "拡張 FAB", label: "作成" },
chip: { noun: "チップ", label: "チップ" },
topAppBar: { noun: "トップアプリバー", label: "タイトル" },
bottomNav: { noun: "ナビゲーションバー" },
searchBar: { noun: "検索バー", label: "検索" },
card: { noun: "カード", label: "カードの見出し", supporting: "補足テキストがここに入ります。" },
listItem: { noun: "リスト項目", label: "リスト項目", supporting: "サブテキスト" },
dialog: { noun: "ダイアログ", label: "確認", supporting: "この操作を実行しますか?" },
snackbar: { noun: "スナックバー", label: "保存しました", supporting: "元に戻す" },
textField: { noun: "テキスト入力", label: "ラベル" },
switch: { noun: "スイッチ", label: "通知" },
checkbox: { noun: "チェックボックス", label: "同意する" },
slider: { noun: "スライダー" },
text: { noun: "テキスト", label: "見出し" },
image: { noun: "画像" },
divider: { noun: "区切り線" },
loadingIndicator: { noun: "ローディングインジケータ" },
linearProgress: { noun: "リニアプログレス" },
circularProgress: { noun: "サーキュラープログレス" },
splitButton: { noun: "スプリットボタン", label: "送信" },
fabMenu: { noun: "FAB メニュー" },
toolbar: { noun: "ツールバー" },
tabs: { noun: "タブ" },
radio: { noun: "ラジオボタン", label: "選択肢" },
badge: { noun: "バッジ", label: "3" },
},
en: {
box: { noun: "box" },
button: { noun: "button", label: "Button" },
iconButton: { noun: "icon button" },
fab: { noun: "FAB" },
extendedFab: { noun: "extended FAB", label: "Create" },
chip: { noun: "chip", label: "Chip" },
topAppBar: { noun: "top app bar", label: "Title" },
bottomNav: { noun: "navigation bar" },
searchBar: { noun: "search bar", label: "Search" },
card: { noun: "card", label: "Card headline", supporting: "Supporting text goes here." },
listItem: { noun: "list item", label: "List item", supporting: "Supporting text" },
dialog: { noun: "dialog", label: "Confirm", supporting: "Do you want to continue?" },
snackbar: { noun: "snackbar", label: "Saved", supporting: "Undo" },
textField: { noun: "text field", label: "Label" },
switch: { noun: "switch", label: "Notifications" },
checkbox: { noun: "checkbox", label: "I agree" },
slider: { noun: "slider" },
text: { noun: "text", label: "Headline" },
image: { noun: "image" },
divider: { noun: "divider" },
loadingIndicator: { noun: "loading indicator" },
linearProgress: { noun: "linear progress indicator" },
circularProgress: { noun: "circular progress indicator" },
splitButton: { noun: "split button", label: "Send" },
fabMenu: { noun: "FAB menu" },
toolbar: { noun: "toolbar" },
tabs: { noun: "tabs" },
radio: { noun: "radio button", label: "Option" },
badge: { noun: "badge", label: "3" },
},
zh: {
box: { noun: "容器框" },
button: { noun: "按钮", label: "按钮" },
iconButton: { noun: "图标按钮" },
fab: { noun: "FAB(悬浮按钮)" },
extendedFab: { noun: "扩展 FAB", label: "新建" },
chip: { noun: "标签片", label: "标签" },
topAppBar: { noun: "顶部应用栏", label: "标题" },
bottomNav: { noun: "导航栏" },
searchBar: { noun: "搜索栏", label: "搜索" },
card: { noun: "卡片", label: "卡片标题", supporting: "这里是辅助说明文字。" },
listItem: { noun: "列表项", label: "列表项", supporting: "辅助文本" },
dialog: { noun: "对话框", label: "确认", supporting: "要执行此操作吗?" },
snackbar: { noun: "消息条", label: "已保存", supporting: "撤销" },
textField: { noun: "文本输入框", label: "标签" },
switch: { noun: "开关", label: "通知" },
checkbox: { noun: "复选框", label: "我同意" },
slider: { noun: "滑块" },
text: { noun: "文本", label: "标题" },
image: { noun: "图片" },
divider: { noun: "分割线" },
loadingIndicator: { noun: "加载指示器" },
linearProgress: { noun: "线性进度条" },
circularProgress: { noun: "圆形进度条" },
splitButton: { noun: "拆分按钮", label: "发送" },
fabMenu: { noun: "FAB 菜单" },
toolbar: { noun: "工具栏" },
tabs: { noun: "标签页" },
radio: { noun: "单选按钮", label: "选项" },
badge: { noun: "徽标", label: "3" },
},
};
/** default labels of a tab row */
export const TAB_LABELS: Record<Lang, string[]> = {
ja: ["おすすめ", "フォロー中", "人気", "新着", "保存済み"],
en: ["For you", "Following", "Trending", "New", "Saved"],
zh: ["推荐", "关注", "热门", "最新", "已保存"],
};
/** default entries of a FAB menu */
export const FAB_MENU_TABS: Record<Lang, { icon: string; label: string }[]> = {
ja: [
{ icon: "edit", label: "メモ" },
{ icon: "photo_camera", label: "写真" },
{ icon: "mic", label: "音声" },
{ icon: "attach_file", label: "ファイル" },
{ icon: "event", label: "予定" },
],
en: [
{ icon: "edit", label: "Note" },
{ icon: "photo_camera", label: "Photo" },
{ icon: "mic", label: "Audio" },
{ icon: "attach_file", label: "File" },
{ icon: "event", label: "Event" },
],
zh: [
{ icon: "edit", label: "笔记" },
{ icon: "photo_camera", label: "照片" },
{ icon: "mic", label: "语音" },
{ icon: "attach_file", label: "文件" },
{ icon: "event", label: "日程" },
],
};
export const NAV_TABS: Record<Lang, { icon: string; label: string }[]> = {
663E
ja: [
{ icon: "home", label: "ホーム" },
{ icon: "search", label: "検索" },
{ icon: "favorite", label: "保存" },
{ icon: "settings", label: "設定" },
],
en: [
{ icon: "home", label: "Home" },
{ icon: "search", label: "Search" },
{ icon: "favorite", label: "Saved" },
{ icon: "settings", label: "Settings" },
],
zh: [
{ icon: "home", label: "首页" },
{ icon: "search", label: "搜索" },
{ icon: "favorite", label: "收藏" },
{ icon: "settings", label: "设置" },
],
};
export const TRANSITION_TEXT: Record<Lang, Record<string, string>> = {
ja: {
slide: "右からのスライド",
slideLeft: "左からのスライド",
slideUp: "下からのスライド",
slideDown: "上からのスライド",
fade: "フェード",
expand: "拡大",
none: "アニメーションなし",
},
en: {
slide: "a slide in from the right",
slideLeft: "a slide in from the left",
slideUp: "a slide up from the bottom",
slideDown: "a slide down from the top",
fade: "a fade",
expand: "an expand",
none: "no animation",
},
zh: {
slide: "从右侧滑入",
slideLeft: "从左侧滑入",
slideUp: "从底部滑入",
slideDown: "从顶部滑入",
fade: "淡入",
expand: "放大",
none: "无动画",
},
};
export const SWIPE_TEXT: Record<Lang, Record<string, string>> = {
ja: { left: "左へスワイプ", right: "右へスワイプ", up: "上へスワイプ", down: "下へスワイプ" },
en: { left: "swiping left", right: "swiping right", up: "swiping up", down: "swiping down" },
zh: { left: "向左滑动", right: "向右滑动", up: "向上滑动", down: "向下滑动" },
};