feat(i18n): 添加中文翻译文件并国际化形状标签
refactor(admin): 使用国际化函数包装形状标签和设置字段
This commit is contained in:
parent
0855b22974
commit
a64c19750f
|
|
@ -38,7 +38,7 @@
|
||||||
// 权重输入已整合到卡片内部 旧容器不再使用
|
// 权重输入已整合到卡片内部 旧容器不再使用
|
||||||
|
|
||||||
// 形状标签映射用于显示友好名称
|
// 形状标签映射用于显示友好名称
|
||||||
var shapeLabelsMap = {
|
var shapeLabelsMap = (typeof window !== 'undefined' && window.YooneSnowAdmin && window.YooneSnowAdmin.shapeLabels) ? window.YooneSnowAdmin.shapeLabels : {
|
||||||
dot: 'Dot',
|
dot: 'Dot',
|
||||||
flake: 'Snowflake',
|
flake: 'Snowflake',
|
||||||
yuanbao: 'Yuanbao',
|
yuanbao: 'Yuanbao',
|
||||||
|
|
|
||||||
Binary file not shown.
|
|
@ -0,0 +1,168 @@
|
||||||
|
msgid ""
|
||||||
|
msgstr ""
|
||||||
|
"Project-Id-Version: yoone-snow\n"
|
||||||
|
"Language: zh_CN\n"
|
||||||
|
"Content-Type: text/plain; charset=UTF-8\n"
|
||||||
|
"Plural-Forms: nplurals=1; plural=0;\n"
|
||||||
|
|
||||||
|
# Plugin and menu
|
||||||
|
msgid "Yoone Snow"
|
||||||
|
msgstr "Yoone Snow"
|
||||||
|
|
||||||
|
msgid "Settings"
|
||||||
|
msgstr "设置"
|
||||||
|
|
||||||
|
# Section and fields
|
||||||
|
msgid "Snow Settings"
|
||||||
|
msgstr "雪花设置"
|
||||||
|
|
||||||
|
msgid "Configure snow appearance"
|
||||||
|
msgstr "配置雪花外观"
|
||||||
|
|
||||||
|
msgid "Shapes"
|
||||||
|
msgstr "形状"
|
||||||
|
|
||||||
|
msgid "Type"
|
||||||
|
msgstr "类型"
|
||||||
|
|
||||||
|
msgid "Default"
|
||||||
|
msgstr "默认"
|
||||||
|
|
||||||
|
msgid "Emoji"
|
||||||
|
msgstr "Emoji"
|
||||||
|
|
||||||
|
msgid "Media"
|
||||||
|
msgstr "媒体"
|
||||||
|
|
||||||
|
msgid "Text"
|
||||||
|
msgstr "文本"
|
||||||
|
|
||||||
|
msgid "Select shape"
|
||||||
|
msgstr "选择形状"
|
||||||
|
|
||||||
|
msgid "Select emoji"
|
||||||
|
msgstr "选择 Emoji"
|
||||||
|
|
||||||
|
msgid "Type emoji or alias"
|
||||||
|
msgstr "输入 Emoji 或别名"
|
||||||
|
|
||||||
|
msgid "Add Images"
|
||||||
|
msgstr "添加图片"
|
||||||
|
|
||||||
|
msgid "Remove"
|
||||||
|
msgstr "移除"
|
||||||
|
|
||||||
|
msgid "Cancel"
|
||||||
|
msgstr "取消"
|
||||||
|
|
||||||
|
msgid "Add shapes by type all in one list"
|
||||||
|
msgstr "按类型统一添加到列表"
|
||||||
|
|
||||||
|
msgid "Add different types of shapes here"
|
||||||
|
msgstr "在此添加不同类型的形状"
|
||||||
|
|
||||||
|
# Shape labels
|
||||||
|
msgid "Dot"
|
||||||
|
msgstr "圆点"
|
||||||
|
|
||||||
|
msgid "Snowflake"
|
||||||
|
msgstr "雪花"
|
||||||
|
|
||||||
|
msgid "Yuanbao"
|
||||||
|
msgstr "元宝"
|
||||||
|
|
||||||
|
msgid "Coin"
|
||||||
|
msgstr "金币"
|
||||||
|
|
||||||
|
msgid "Santa Hat"
|
||||||
|
msgstr "圣诞帽"
|
||||||
|
|
||||||
|
msgid "Candy Cane"
|
||||||
|
msgstr "拐杖糖"
|
||||||
|
|
||||||
|
msgid "Christmas Sock"
|
||||||
|
msgstr "圣诞袜"
|
||||||
|
|
||||||
|
msgid "Christmas Tree"
|
||||||
|
msgstr "圣诞树"
|
||||||
|
|
||||||
|
msgid "Reindeer"
|
||||||
|
msgstr "麋鹿"
|
||||||
|
|
||||||
|
msgid "Christmas Berry"
|
||||||
|
msgstr "冬青果"
|
||||||
|
|
||||||
|
# Shape descriptions
|
||||||
|
msgid "Basic dot shape simple and lightweight"
|
||||||
|
msgstr "基础圆点形状 简洁轻量"
|
||||||
|
|
||||||
|
msgid "Snowflake shape more decorative"
|
||||||
|
msgstr "雪花形状 更具装饰性"
|
||||||
|
|
||||||
|
msgid "Yuanbao shape festive theme"
|
||||||
|
msgstr "元宝形状 节日气氛"
|
||||||
|
|
||||||
|
msgid "Coin shape festive theme"
|
||||||
|
msgstr "金币形状 节日气氛"
|
||||||
|
|
||||||
|
msgid "Santa hat shape seasonal theme"
|
||||||
|
msgstr "圣诞帽形状 应季主题"
|
||||||
|
|
||||||
|
msgid "Candy cane shape seasonal theme"
|
||||||
|
msgstr "拐杖糖形状 应季主题"
|
||||||
|
|
||||||
|
msgid "Christmas sock shape seasonal theme"
|
||||||
|
msgstr "圣诞袜形状 应季主题"
|
||||||
|
|
||||||
|
msgid "Christmas tree shape seasonal theme"
|
||||||
|
msgstr "圣诞树形状 应季主题"
|
||||||
|
|
||||||
|
msgid "Reindeer shape seasonal theme"
|
||||||
|
msgstr "麋鹿形状 应季主题"
|
||||||
|
|
||||||
|
msgid "Christmas berry shape seasonal theme"
|
||||||
|
msgstr "冬青果形状 应季主题"
|
||||||
|
|
||||||
|
# Weight explanation
|
||||||
|
msgid "Weight controls relative probability Weight is a non negative integer Weight 0 disables a shape Probability equals shape weight divided by the sum of all shape weights Example dot 1 flake 4 flake has about four times the chance of dot"
|
||||||
|
msgstr "权重用于控制随机生成的相对概率 权重为非负整数 权重为 0 表示禁用 某形状概率等于其权重除以所有形状权重之和 例如 dot 1 flake 4 flake 概率约为 dot 的四倍"
|
||||||
|
|
||||||
|
# Other settings
|
||||||
|
msgid "Home Display Duration Seconds"
|
||||||
|
msgstr "首页显示时长 秒"
|
||||||
|
|
||||||
|
msgid "Duration in seconds for snow on home 0 means infinite"
|
||||||
|
msgstr "首页雪花显示时长 单位秒 0 表示无限"
|
||||||
|
|
||||||
|
msgid "Max Snowflakes On Screen"
|
||||||
|
msgstr "在屏最大雪花数量"
|
||||||
|
|
||||||
|
msgid "0 means auto based on viewport area upper bound 1000"
|
||||||
|
msgstr "0 表示根据视口面积自动 上限 1000"
|
||||||
|
|
||||||
|
msgid "Snow Size"
|
||||||
|
msgstr "雪花尺寸"
|
||||||
|
|
||||||
|
msgid "Random radius in [min max] single option"
|
||||||
|
msgstr "随机半径在最小与最大之间 单一选项保存"
|
||||||
|
|
||||||
|
msgid "Min"
|
||||||
|
msgstr "最小"
|
||||||
|
|
||||||
|
msgid "Max"
|
||||||
|
msgstr "最大"
|
||||||
|
|
||||||
|
msgid "Drift Speed Random Range"
|
||||||
|
msgstr "漂移速度随机范围"
|
||||||
|
|
||||||
|
msgid "Random vertical drift speed base in [min max]"
|
||||||
|
msgstr "垂直漂移速度基值在最小与最大之间随机"
|
||||||
|
|
||||||
|
msgid "Swing Amplitude Random Range"
|
||||||
|
msgstr "摆动幅度随机范围"
|
||||||
|
|
||||||
|
msgid "Random horizontal swing amplitude base in [min max] before offset scale"
|
||||||
|
msgstr "水平摆动幅度基值在最小与最大之间随机 应用偏移缩放前"
|
||||||
|
|
||||||
|
msgid "Select images or SVG"
|
||||||
|
msgstr "选择图片或 SVG"
|
||||||
|
|
@ -324,6 +324,18 @@ function yoone_snow_admin_enqueue($hook) {
|
||||||
'reindeer' => plugins_url('assets/圣诞麋鹿.svg', __FILE__),
|
'reindeer' => plugins_url('assets/圣诞麋鹿.svg', __FILE__),
|
||||||
'christmas_berry' => plugins_url('assets/圣诞果.svg', __FILE__),
|
'christmas_berry' => plugins_url('assets/圣诞果.svg', __FILE__),
|
||||||
),
|
),
|
||||||
|
'shapeLabels' => array(
|
||||||
|
'dot' => esc_html__('Dot', 'yoone-snow'),
|
||||||
|
'flake' => esc_html__('Snowflake', 'yoone-snow'),
|
||||||
|
'yuanbao' => esc_html__('Yuanbao', 'yoone-snow'),
|
||||||
|
'coin' => esc_html__('Coin', 'yoone-snow'),
|
||||||
|
'santa_hat' => esc_html__('Santa Hat', 'yoone-snow'),
|
||||||
|
'candy_cane' => esc_html__('Candy Cane', 'yoone-snow'),
|
||||||
|
'christmas_sock' => esc_html__('Christmas Sock', 'yoone-snow'),
|
||||||
|
'christmas_tree' => esc_html__('Christmas Tree', 'yoone-snow'),
|
||||||
|
'reindeer' => esc_html__('Reindeer', 'yoone-snow'),
|
||||||
|
'christmas_berry' => esc_html__('Christmas Berry', 'yoone-snow'),
|
||||||
|
),
|
||||||
'i18n' => array(
|
'i18n' => array(
|
||||||
'cancel' => esc_html__('Cancel', 'yoone-snow'),
|
'cancel' => esc_html__('Cancel', 'yoone-snow'),
|
||||||
'remove' => esc_html__('Remove', 'yoone-snow'),
|
'remove' => esc_html__('Remove', 'yoone-snow'),
|
||||||
|
|
@ -400,16 +412,16 @@ function yoone_snow_register_settings() {
|
||||||
}
|
}
|
||||||
if (!is_array($current_list)) { $current_list = array('dot','flake'); }
|
if (!is_array($current_list)) { $current_list = array('dot','flake'); }
|
||||||
$options = array(
|
$options = array(
|
||||||
'dot' => 'Dot',
|
'dot' => esc_html__('Dot', 'yoone-snow'),
|
||||||
'flake' => 'Snowflake',
|
'flake' => esc_html__('Snowflake', 'yoone-snow'),
|
||||||
'yuanbao' => 'Yuanbao',
|
'yuanbao' => esc_html__('Yuanbao', 'yoone-snow'),
|
||||||
'coin' => 'Coin',
|
'coin' => esc_html__('Coin', 'yoone-snow'),
|
||||||
'santa_hat' => 'Santa Hat',
|
'santa_hat' => esc_html__('Santa Hat', 'yoone-snow'),
|
||||||
'candy_cane' => 'Candy Cane',
|
'candy_cane' => esc_html__('Candy Cane', 'yoone-snow'),
|
||||||
'christmas_sock' => 'Christmas Sock',
|
'christmas_sock' => esc_html__('Christmas Sock', 'yoone-snow'),
|
||||||
'christmas_tree' => 'Christmas Tree',
|
'christmas_tree' => esc_html__('Christmas Tree', 'yoone-snow'),
|
||||||
'reindeer' => 'Reindeer',
|
'reindeer' => esc_html__('Reindeer', 'yoone-snow'),
|
||||||
'christmas_berry' => 'Christmas Berry',
|
'christmas_berry' => esc_html__('Christmas Berry', 'yoone-snow'),
|
||||||
);
|
);
|
||||||
// 形状描述映射 用于在界面提示 使用国际化函数
|
// 形状描述映射 用于在界面提示 使用国际化函数
|
||||||
$shape_descriptions = array(
|
$shape_descriptions = array(
|
||||||
|
|
@ -708,12 +720,12 @@ function yoone_snow_register_settings() {
|
||||||
// 添加首页显示时长字段 输入为数字最小值为 0
|
// 添加首页显示时长字段 输入为数字最小值为 0
|
||||||
add_settings_field(
|
add_settings_field(
|
||||||
'yoone_snow_home_duration',
|
'yoone_snow_home_duration',
|
||||||
'Home Display Duration Seconds',
|
esc_html__('Home Display Duration Seconds', 'yoone-snow'),
|
||||||
function() {
|
function() {
|
||||||
// 读取当前设置值 并渲染数字输入框
|
// 读取当前设置值 并渲染数字输入框
|
||||||
$current = intval(get_option('yoone_snow_home_duration', 0));
|
$current = intval(get_option('yoone_snow_home_duration', 0));
|
||||||
echo '<input type="number" min="0" name="yoone_snow_home_duration" value="' . esc_attr($current) . '" style="width:120px;" />';
|
echo '<input type="number" min="0" name="yoone_snow_home_duration" value="' . esc_attr($current) . '" style="width:120px;" />';
|
||||||
echo '<p class="description">Duration in seconds for snow on home 0 means infinite</p>';
|
echo '<p class="description">' . esc_html__('Duration in seconds for snow on home 0 means infinite', 'yoone-snow') . '</p>';
|
||||||
},
|
},
|
||||||
'yoone_snow',
|
'yoone_snow',
|
||||||
'yoone_snow_section'
|
'yoone_snow_section'
|
||||||
|
|
@ -735,11 +747,11 @@ function yoone_snow_register_settings() {
|
||||||
// 添加输入字段 用于设置在屏最大数量 0 表示自动
|
// 添加输入字段 用于设置在屏最大数量 0 表示自动
|
||||||
add_settings_field(
|
add_settings_field(
|
||||||
'yoone_snow_max_count',
|
'yoone_snow_max_count',
|
||||||
'Max Snowflakes On Screen',
|
esc_html__('Max Snowflakes On Screen', 'yoone-snow'),
|
||||||
function() {
|
function() {
|
||||||
$current = intval(get_option('yoone_snow_max_count', 0));
|
$current = intval(get_option('yoone_snow_max_count', 0));
|
||||||
echo '<input type="number" min="0" step="1" name="yoone_snow_max_count" value="' . esc_attr($current) . '" style="width:120px;" />';
|
echo '<input type="number" min="0" step="1" name="yoone_snow_max_count" value="' . esc_attr($current) . '" style="width:120px;" />';
|
||||||
echo '<p class="description">0 means auto based on viewport area upper bound 1000</p>';
|
echo '<p class="description">' . esc_html__('0 means auto based on viewport area upper bound 1000', 'yoone-snow') . '</p>';
|
||||||
},
|
},
|
||||||
'yoone_snow',
|
'yoone_snow',
|
||||||
'yoone_snow_section'
|
'yoone_snow_section'
|
||||||
|
|
@ -762,15 +774,15 @@ function yoone_snow_register_settings() {
|
||||||
|
|
||||||
add_settings_field(
|
add_settings_field(
|
||||||
'yoone_snow_size',
|
'yoone_snow_size',
|
||||||
'Snow Size',
|
esc_html__('Snow Size', 'yoone-snow'),
|
||||||
function() {
|
function() {
|
||||||
// 渲染组合输入 使用同一选项保存最小与最大半径
|
// 渲染组合输入 使用同一选项保存最小与最大半径
|
||||||
$grp = get_option('yoone_snow_size', array('min' => 1.0, 'max' => 3.0));
|
$grp = get_option('yoone_snow_size', array('min' => 1.0, 'max' => 3.0));
|
||||||
$min = isset($grp['min']) ? floatval($grp['min']) : 1.0;
|
$min = isset($grp['min']) ? floatval($grp['min']) : 1.0;
|
||||||
$max = isset($grp['max']) ? floatval($grp['max']) : 3.0;
|
$max = isset($grp['max']) ? floatval($grp['max']) : 3.0;
|
||||||
echo '<label style="margin-right:12px;">Min <input type="number" min="0" step="0.1" name="yoone_snow_size[min]" value="' . esc_attr($min) . '" style="width:120px;" /></label>';
|
echo '<label style="margin-right:12px;">' . esc_html__('Min', 'yoone-snow') . ' <input type="number" min="0" step="0.1" name="yoone_snow_size[min]" value="' . esc_attr($min) . '" style="width:120px;" /></label>';
|
||||||
echo '<label>Max <input type="number" min="0" step="0.1" name="yoone_snow_size[max]" value="' . esc_attr($max) . '" style="width:120px;" /></label>';
|
echo '<label>' . esc_html__('Max', 'yoone-snow') . ' <input type="number" min="0" step="0.1" name="yoone_snow_size[max]" value="' . esc_attr($max) . '" style="width:120px;" /></label>';
|
||||||
echo '<p class="description">Random radius in [min max] single option</p>';
|
echo '<p class="description">' . esc_html__('Random radius in [min max] single option', 'yoone-snow') . '</p>';
|
||||||
},
|
},
|
||||||
'yoone_snow',
|
'yoone_snow',
|
||||||
'yoone_snow_section'
|
'yoone_snow_section'
|
||||||
|
|
@ -799,13 +811,13 @@ function yoone_snow_register_settings() {
|
||||||
));
|
));
|
||||||
add_settings_field(
|
add_settings_field(
|
||||||
'yoone_snow_drift_range',
|
'yoone_snow_drift_range',
|
||||||
'Drift Speed Random Range',
|
esc_html__('Drift Speed Random Range', 'yoone-snow'),
|
||||||
function() {
|
function() {
|
||||||
$min = floatval(get_option('yoone_snow_drift_min', 0.4));
|
$min = floatval(get_option('yoone_snow_drift_min', 0.4));
|
||||||
$max = floatval(get_option('yoone_snow_drift_max', 1.0));
|
$max = floatval(get_option('yoone_snow_drift_max', 1.0));
|
||||||
echo '<label style="margin-right:12px;">Min <input type="number" min="0" step="0.1" name="yoone_snow_drift_min" value="' . esc_attr($min) . '" style="width:120px;" /></label>';
|
echo '<label style="margin-right:12px;">' . esc_html__('Min', 'yoone-snow') . ' <input type="number" min="0" step="0.1" name="yoone_snow_drift_min" value="' . esc_attr($min) . '" style="width:120px;" /></label>';
|
||||||
echo '<label>Max <input type="number" min="0" step="0.1" name="yoone_snow_drift_max" value="' . esc_attr($max) . '" style="width:120px;" /></label>';
|
echo '<label>' . esc_html__('Max', 'yoone-snow') . ' <input type="number" min="0" step="0.1" name="yoone_snow_drift_max" value="' . esc_attr($max) . '" style="width:120px;" /></label>';
|
||||||
echo '<p class="description">Random vertical drift speed base in [min max]</p>';
|
echo '<p class="description">' . esc_html__('Random vertical drift speed base in [min max]', 'yoone-snow') . '</p>';
|
||||||
},
|
},
|
||||||
'yoone_snow',
|
'yoone_snow',
|
||||||
'yoone_snow_section'
|
'yoone_snow_section'
|
||||||
|
|
@ -832,13 +844,13 @@ function yoone_snow_register_settings() {
|
||||||
));
|
));
|
||||||
add_settings_field(
|
add_settings_field(
|
||||||
'yoone_snow_swing_range',
|
'yoone_snow_swing_range',
|
||||||
'Swing Amplitude Random Range',
|
esc_html__('Swing Amplitude Random Range', 'yoone-snow'),
|
||||||
function() {
|
function() {
|
||||||
$min = floatval(get_option('yoone_snow_swing_min', 0.2));
|
$min = floatval(get_option('yoone_snow_swing_min', 0.2));
|
||||||
$max = floatval(get_option('yoone_snow_swing_max', 1.0));
|
$max = floatval(get_option('yoone_snow_swing_max', 1.0));
|
||||||
echo '<label style="margin-right:12px;">Min <input type="number" min="0" step="0.1" name="yoone_snow_swing_min" value="' . esc_attr($min) . '" style="width:120px;" /></label>';
|
echo '<label style="margin-right:12px;">' . esc_html__('Min', 'yoone-snow') . ' <input type="number" min="0" step="0.1" name="yoone_snow_swing_min" value="' . esc_attr($min) . '" style="width:120px;" /></label>';
|
||||||
echo '<label>Max <input type="number" min="0" step="0.1" name="yoone_snow_swing_max" value="' . esc_attr($max) . '" style="width:120px;" /></label>';
|
echo '<label>' . esc_html__('Max', 'yoone-snow') . ' <input type="number" min="0" step="0.1" name="yoone_snow_swing_max" value="' . esc_attr($max) . '" style="width:120px;" /></label>';
|
||||||
echo '<p class="description">Random horizontal swing amplitude base in [min max] before offset scale</p>';
|
echo '<p class="description">' . esc_html__('Random horizontal swing amplitude base in [min max] before offset scale', 'yoone-snow') . '</p>';
|
||||||
},
|
},
|
||||||
'yoone_snow',
|
'yoone_snow',
|
||||||
'yoone_snow_section'
|
'yoone_snow_section'
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue