Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

关于汉化关键词的标准化执行策略 #92

Closed
4b5ent1 opened this issue Oct 16, 2018 · 5 comments
Closed

关于汉化关键词的标准化执行策略 #92

4b5ent1 opened this issue Oct 16, 2018 · 5 comments
Labels
active 不一定活跃,但没有弃坑 APL +组合逻辑/tacit族 +erlang +BEAM +forth stack based desgin nV-非冯 非冯诺依曼架构/体系 #prolog 逻辑编程 规范 RFC 设计 design 调研
Milestone

Comments

@4b5ent1
Copy link
Member

4b5ent1 commented Oct 16, 2018

ref:github.com//issues/40

#40 已经讨论了很多了,目前还没有下一步安排。个人认为采样已经充分,可以考虑通过投票等方式进行关键词标准化讨论。

关于投票我觉得可以这样:首先分编程语言,其次对于每个[关键词/组合]进行投票/讨论。比如typescript的if/else,现有关键词集:https://github.com/program-in-chinese/overview/wiki/英文关键词汉化 ,从中选项进行投票,有不同意见可以留言讨论。

@nobodxbodon
Copy link
Member

建议结合命名讨论关键词: #40 (comment)
毕竟, 即使"标准化"了, 也要通过积累好用好读的实例进行推广.

@4b5ent1 4b5ent1 added this to the 2018戊戌 milestone Oct 16, 2018
@4b5ent1
Copy link
Member Author

4b5ent1 commented Oct 16, 2018

@nobodxbodon
Copy link
Member

举个例吧.
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用在这里本身就有点勉强. 感觉和令/让都有距离, 一时想不到合适的代替. 如理解有偏差请指教.

@4b5ent1 4b5ent1 removed the 中文化 label Nov 22, 2018
@4b5ent1
Copy link
Member Author

4b5ent1 commented Nov 30, 2018

@nobodxbodon 之前错过前面的回复,刚看到这个。目前个人对这个问题的处理,就是关键词可以尽量不汉化,如果是中文化,大部分都需要新的语法。
关于else if的问题,按照上面的逻辑,一种就是不翻译else,一种就是跟python一样,合并成elif这种

@4b5ent1 4b5ent1 added session-archive nV-非冯 非冯诺依曼架构/体系 设计 design 调研 APL +组合逻辑/tacit族 active 不一定活跃,但没有弃坑 +erlang +BEAM +forth stack based desgin #prolog 逻辑编程 labels Dec 8, 2018
@4b5ent1
Copy link
Member Author

4b5ent1 commented Dec 8, 2018

先存档#save/archive

@4b5ent1 4b5ent1 closed this as completed Dec 8, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
active 不一定活跃,但没有弃坑 APL +组合逻辑/tacit族 +erlang +BEAM +forth stack based desgin nV-非冯 非冯诺依曼架构/体系 #prolog 逻辑编程 规范 RFC 设计 design 调研
Projects
None yet
Development

No branches or pull requests

2 participants