关于汉化关键词的标准化执行策略
4b5ent1 opened this issue · 5 comments
ref:github.com//issues/40
#40 已经讨论了很多了,目前还没有下一步安排。个人认为采样已经充分,可以考虑通过投票等方式进行关键词标准化讨论。
关于投票我觉得可以这样:首先分编程语言,其次对于每个[关键词/组合]进行投票/讨论。比如typescript的if/else,现有关键词集:https://github.com/program-in-chinese/overview/wiki/英文关键词汉化 ,从中选项进行投票,有不同意见可以留言讨论。
建议结合命名讨论关键词: #40 (comment)
毕竟, 即使"标准化"了, 也要通过积累好用好读的实例进行推广.
举个例吧.
https://rustwiki.org/zh-CN//rust-by-example/flow_control/if_else.html 中的片段:
if n < 0 {
print!("{} is negative", n);
} else if n > 0 {
print!("{} is positive", n);
} else {
print!("{} is zero", n);
}
根据wiki页的待选, 将if/else
试换为若/不若
, 觉得不若 若 n > 0
不大一目了然:
若 n < 0 {
print!("{} is negative", n);
} 不若 若 n > 0 {
print!("{} is positive", n);
} 不若 {
print!("{} is zero", n);
}
通过这样的实例, 可以排除一些待选项.
另外, 关键词选取也和语法设计有关, 比如if let
的例子:
#![allow(unused_variables)]
fn main() {
#[derive(Debug)]
enum UsState {
Alabama,
Alaska,
}
enum Coin {
Penny,
Nickel,
Dime,
Quarter(UsState),
}
let coin = Coin::Penny;
let mut count = 0;
if let Coin::Quarter(state) = coin {
println!("State quarter from {:?}!", state);
} else {
count += 1;
}
}
转换后(考虑本土化, 毕竟四分之一硬币不大接地气, 更不用说上面有每个州这种知识):
如果 令 硬币::四分之一硬币(州) = 硬币 {
println!("{:?}州的四分之一硬币!", 州);
}
个人第一次看到这个语法, 理解有限, 只觉得let
用在这里本身就有点勉强. 感觉和令/让
都有距离, 一时想不到合适的代替. 如理解有偏差请指教.
@nobodxbodon 之前错过前面的回复,刚看到这个。目前个人对这个问题的处理,就是关键词可以尽量不汉化,如果是中文化,大部分都需要新的语法。
关于else if的问题,按照上面的逻辑,一种就是不翻译else,一种就是跟python一样,合并成elif这种
先存档#save/archive