diff --git a/src/recipe/lang/Dart/Flutter.c b/src/recipe/lang/Dart/Flutter.c index cb7df72..a21222e 100644 --- a/src/recipe/lang/Dart/Flutter.c +++ b/src/recipe/lang/Dart/Flutter.c @@ -17,7 +17,11 @@ pl_dart_flutter_prelude (void) chef_set_cooks (this, 1, "@ccmywish"); chef_set_sauciers (this, 2, "@czyt", "@xrgzs"); - chef_allow_local_mode (this, CanNot, NULL, NULL); + chef_set_scope_cap (this, ProjectScope, ScopeCap_Unknown); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unknown); + chef_set_default_scope (this, UserScope); + chef_allow_english(this); chef_allow_user_define(this); diff --git a/src/recipe/lang/Dart/Pub.c b/src/recipe/lang/Dart/Pub.c index 820b3f4..a6d60e6 100644 --- a/src/recipe/lang/Dart/Pub.c +++ b/src/recipe/lang/Dart/Pub.c @@ -17,7 +17,11 @@ pl_dart_prelude (void) chef_set_cooks (this, 1, "@ccmywish"); chef_set_sauciers (this, 2, "@czyt", "@xrgzs"); - chef_allow_local_mode (this, FullyCan, NULL, NULL); + chef_set_scope_cap (this, ProjectScope, ScopeCap_Unknown); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unknown); + chef_set_default_scope (this, UserScope); + chef_allow_english(this); chef_allow_user_define(this); diff --git a/src/recipe/lang/Go.c b/src/recipe/lang/Go.c index e0f93e3..dcc71a1 100644 --- a/src/recipe/lang/Go.c +++ b/src/recipe/lang/Go.c @@ -31,7 +31,11 @@ pl_go_prelude () chef_set_cooks (this, 1, "@ccmywish"); chef_set_sauciers (this, 2, "@czyt", "@techoc"); - chef_allow_local_mode (this, CanNot, NULL, NULL); + chef_set_scope_cap (this, ProjectScope, ScopeCap_Unknown); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unable); + chef_set_default_scope (this, UserScope); + chef_deny_english(this); chef_allow_user_define(this); diff --git a/src/recipe/lang/Haskell.c b/src/recipe/lang/Haskell.c index 38c688e..68d3e1b 100644 --- a/src/recipe/lang/Haskell.c +++ b/src/recipe/lang/Haskell.c @@ -17,7 +17,11 @@ pl_haskell_prelude () chef_set_cooks (this, 1, "@ccmywish"); chef_set_sauciers (this, 1, "@hezonglun"); - chef_allow_local_mode (this, CanNot, NULL, NULL); + chef_set_scope_cap (this, ProjectScope, ScopeCap_Unknown); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unknown); + chef_set_default_scope (this, UserScope); + chef_deny_english(this); chef_allow_user_define(this); diff --git a/src/recipe/lang/Java.c b/src/recipe/lang/Java.c index ceaefe0..fe1a686 100644 --- a/src/recipe/lang/Java.c +++ b/src/recipe/lang/Java.c @@ -17,7 +17,15 @@ pl_java_prelude () chef_set_cooks (this, 2, "@BingChunMoLi", "@ccmywish"); chef_set_sauciers (this, 0); - chef_allow_local_mode (this, CanNot, NULL, NULL); + chef_set_scope_cap (this, ProjectScope, ScopeCap_Unknown); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Able_And_Implemented); + /** + * TODO: 当前实现将首先尝试 SystemScope, 若失败则尝试 UserScope + * 所以并不是真正意义上的某种 Scope,而是两者的叠加,后续考虑强制执行用户所选择的 Scope 以达到用户期待 + */ + chef_set_default_scope (this, SystemScope); + chef_deny_english(this); chef_allow_user_define(this); diff --git a/src/recipe/lang/JavaScript/Bun.c b/src/recipe/lang/JavaScript/Bun.c index f79cc8b..144ccda 100644 --- a/src/recipe/lang/JavaScript/Bun.c +++ b/src/recipe/lang/JavaScript/Bun.c @@ -17,7 +17,11 @@ pl_js_bun_prelude (void) chef_set_cooks (this, 1, "@ccmywish"); chef_set_sauciers (this, 1, "@lontten"); - chef_allow_local_mode (this, FullyCan, NULL, NULL); + chef_set_scope_cap (this, ProjectScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unknown); + chef_set_default_scope (this, UserScope); + chef_allow_english(this); chef_allow_user_define(this); diff --git a/src/recipe/lang/JavaScript/Yarn.c b/src/recipe/lang/JavaScript/Yarn.c index 50c1ded..c4b2443 100644 --- a/src/recipe/lang/JavaScript/Yarn.c +++ b/src/recipe/lang/JavaScript/Yarn.c @@ -17,7 +17,11 @@ pl_js_yarn_prelude (void) chef_set_cooks (this, 1, "@ccmywish"); chef_set_sauciers (this, 1, "@MrWillCom"); - chef_allow_local_mode (this, FullyCan, NULL, NULL); + chef_set_scope_cap (this, ProjectScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unable); + chef_set_default_scope (this, UserScope); + chef_allow_english(this); chef_allow_user_define(this); diff --git a/src/recipe/lang/JavaScript/common.h b/src/recipe/lang/JavaScript/common.h index c8ffd1a..e4ea720 100644 --- a/src/recipe/lang/JavaScript/common.h +++ b/src/recipe/lang/JavaScript/common.h @@ -25,9 +25,12 @@ pl_js_group_prelude (void) chef_set_cooks (this, 1, "@ccmywish"); chef_set_sauciers (this, 2, "@lontten", "@MrWillCom"); - chef_allow_local_mode (this, PartiallyCan, - "支持 npm, yarn v2, pnpm, 不支持 yarn v1", - "Support npm, yarn v2, pnpm, not yarn v1"); + /* ProjectScope 支持 npm, yarn v2, pnpm, 不支持 yarn v1 */ + chef_set_scope_cap (this, ProjectScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unknown); + chef_set_default_scope (this, UserScope); + chef_allow_english(this); chef_allow_user_define(this); @@ -59,7 +62,11 @@ pl_js_nodejs_binary_prelude (void) chef_set_cooks (this, 1, "@ccmywish"); chef_set_sauciers (this, 0); - chef_allow_local_mode (this, CanNot, NULL, NULL); + chef_set_scope_cap (this, ProjectScope, ScopeCap_Unknown); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unknown); + chef_set_default_scope (this, UserScope); + chef_allow_english(this); chef_allow_user_define(this); diff --git a/src/recipe/lang/JavaScript/npm.c b/src/recipe/lang/JavaScript/npm.c index a7eddc9..da237cb 100644 --- a/src/recipe/lang/JavaScript/npm.c +++ b/src/recipe/lang/JavaScript/npm.c @@ -17,7 +17,11 @@ pl_js_npm_prelude (void) chef_set_cooks (this, 1, "@ccmywish"); chef_set_sauciers (this, 1, "@MrWillCom"); - chef_allow_local_mode (this, FullyCan, NULL, NULL); + chef_set_scope_cap (this, ProjectScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unable); + chef_set_default_scope (this, UserScope); + chef_allow_english(this); chef_allow_user_define(this); diff --git a/src/recipe/lang/JavaScript/nvm.c b/src/recipe/lang/JavaScript/nvm.c index 91676ab..a18d9cc 100644 --- a/src/recipe/lang/JavaScript/nvm.c +++ b/src/recipe/lang/JavaScript/nvm.c @@ -17,7 +17,11 @@ pl_js_nvm_prelude (void) chef_set_cooks (this, 1, "@ccmywish"); chef_set_sauciers (this, 0); - chef_allow_local_mode (this, CanNot, NULL, NULL); + chef_set_scope_cap (this, ProjectScope, ScopeCap_Unknown); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unable); + chef_set_default_scope (this, UserScope); + chef_allow_english(this); chef_allow_user_define(this); diff --git a/src/recipe/lang/JavaScript/pnpm.c b/src/recipe/lang/JavaScript/pnpm.c index 345f4dc..a7673f4 100644 --- a/src/recipe/lang/JavaScript/pnpm.c +++ b/src/recipe/lang/JavaScript/pnpm.c @@ -17,7 +17,11 @@ pl_js_pnpm_prelude (void) chef_set_cooks (this, 1, "@ccmywish"); chef_set_sauciers (this, 0); - chef_allow_local_mode (this, FullyCan, NULL, NULL); + chef_set_scope_cap (this, ProjectScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unable); + chef_set_default_scope (this, UserScope); + chef_allow_english(this); chef_allow_user_define(this); diff --git a/src/recipe/lang/Julia.c b/src/recipe/lang/Julia.c index 632d83e..4512c9e 100644 --- a/src/recipe/lang/Julia.c +++ b/src/recipe/lang/Julia.c @@ -17,7 +17,11 @@ pl_julia_prelude () chef_set_cooks (this, 1, "@ccmywish"); chef_set_sauciers (this, 1, "@hezonglun"); - chef_allow_local_mode (this, CanNot, NULL, NULL); + chef_set_scope_cap (this, ProjectScope, ScopeCap_Unknown); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unknown); + chef_set_default_scope (this, UserScope); + chef_allow_english(this); chef_allow_user_define(this); diff --git a/src/recipe/lang/Lua.c b/src/recipe/lang/Lua.c index 6abc620..0562599 100644 --- a/src/recipe/lang/Lua.c +++ b/src/recipe/lang/Lua.c @@ -24,7 +24,11 @@ pl_lua_prelude () chef_set_cooks (this, 1, "@ccmywish"); chef_set_sauciers (this, 1, "@hezonglun"); - chef_allow_local_mode (this, CanNot, NULL, NULL); + chef_set_scope_cap (this, ProjectScope, ScopeCap_Unknown); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unknown); + chef_set_default_scope (this, UserScope); + chef_deny_english(this); chef_allow_user_define(this); diff --git a/src/recipe/lang/NuGet.c b/src/recipe/lang/NuGet.c index 401fe1e..5561a30 100644 --- a/src/recipe/lang/NuGet.c +++ b/src/recipe/lang/NuGet.c @@ -17,7 +17,11 @@ pl_nuget_prelude () chef_set_cooks (this, 1, "@ccmywish"); chef_set_sauciers (this, 0); - chef_allow_local_mode (this, CanNot, NULL, NULL); + chef_set_scope_cap (this, ProjectScope, ScopeCap_Unknown); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unknown); + chef_set_default_scope (this, UserScope); + chef_deny_english(this); chef_deny_user_define(this); diff --git a/src/recipe/lang/OCaml.c b/src/recipe/lang/OCaml.c index 44da4ab..f9526d9 100644 --- a/src/recipe/lang/OCaml.c +++ b/src/recipe/lang/OCaml.c @@ -17,7 +17,11 @@ pl_ocaml_prelude () chef_set_cooks (this, 1, "@ccmywish"); chef_set_sauciers (this, 1, "@hezonglun"); - chef_allow_local_mode (this, CanNot, NULL, NULL); + chef_set_scope_cap (this, ProjectScope, ScopeCap_Unknown); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unknown); + chef_set_default_scope (this, UserScope); + chef_deny_english(this); chef_allow_user_define(this); diff --git a/src/recipe/lang/PHP.c b/src/recipe/lang/PHP.c index 093908e..02d2b44 100644 --- a/src/recipe/lang/PHP.c +++ b/src/recipe/lang/PHP.c @@ -17,7 +17,11 @@ pl_php_prelude () chef_set_cooks (this, 1, "@ccmywish"); chef_set_sauciers (this, 1, "@hezonglun"); - chef_allow_local_mode (this, FullyCan, NULL, NULL); + chef_set_scope_cap (this, ProjectScope, ScopeCap_Unknown); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unknown); + chef_set_default_scope (this, UserScope); + chef_deny_english(this); chef_allow_user_define(this); diff --git a/src/recipe/lang/Perl.c b/src/recipe/lang/Perl.c index ff4acf3..8c0239f 100644 --- a/src/recipe/lang/Perl.c +++ b/src/recipe/lang/Perl.c @@ -17,7 +17,11 @@ pl_perl_prelude () chef_set_cooks (this, 1, "@ccmywish"); chef_set_sauciers (this, 2, "@hezonglun", "@Mikachu2333"); - chef_allow_local_mode (this, CanNot, NULL, NULL); + chef_set_scope_cap (this, ProjectScope, ScopeCap_Unknown); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unknown); + chef_set_default_scope (this, UserScope); + chef_deny_english (this); chef_allow_user_define (this); diff --git a/src/recipe/lang/Python/PDM.c b/src/recipe/lang/Python/PDM.c index 1ea7844..9bcb74a 100644 --- a/src/recipe/lang/Python/PDM.c +++ b/src/recipe/lang/Python/PDM.c @@ -17,7 +17,11 @@ pl_python_pdm_prelude (void) chef_set_cooks (this, 1, "@ccmywish"); chef_set_sauciers (this, 0); - chef_allow_local_mode (this, FullyCan, NULL, NULL); + chef_set_scope_cap (this, ProjectScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unable); + chef_set_default_scope (this, UserScope); + chef_allow_english(this); chef_allow_user_define(this); diff --git a/src/recipe/lang/Python/Poetry.c b/src/recipe/lang/Python/Poetry.c index c9b2e02..d1f3fe9 100644 --- a/src/recipe/lang/Python/Poetry.c +++ b/src/recipe/lang/Python/Poetry.c @@ -17,7 +17,12 @@ pl_python_poetry_prelude (void) chef_set_cooks (this, 1, "@ccmywish"); chef_set_sauciers (this, 0); - chef_allow_local_mode (this, FullyCan, "Poetry 默认使用项目级换源", "Poetry uses project-level source changing by default"); + /* Poetry 仅支持项目级换源 */ + chef_set_scope_cap (this, ProjectScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, UserScope, ScopeCap_Unable); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unable); + chef_set_default_scope (this, ProjectScope); + chef_allow_english(this); chef_allow_user_define(this); @@ -41,12 +46,7 @@ pl_python_poetry_setsrc (char *option) if (chsrc_in_standalone_mode()) chsrc_confirm_source(&source); - char *cmd = NULL; - - if (!chsrc_in_project_scope_mode()) - chsrc_alert2 ("Poetry 仅支持项目级换源"); - - cmd = xy_2strcat ("poetry source add my_mirror ", source.url); + char *cmd = xy_2strcat ("poetry source add my_mirror ", source.url); chsrc_run (cmd, RunOpt_No_Last_New_Line); if (chsrc_in_standalone_mode()) diff --git a/src/recipe/lang/Python/Rye.c b/src/recipe/lang/Python/Rye.c index fd1cbfb..d46feb7 100644 --- a/src/recipe/lang/Python/Rye.c +++ b/src/recipe/lang/Python/Rye.c @@ -19,7 +19,11 @@ pl_python_rye_prelude (void) chef_set_cooks (this, 1, "@ccmywish"); chef_set_sauciers (this, 0); - chef_allow_local_mode (this, FullyCan, NULL, NULL); + chef_set_scope_cap (this, ProjectScope, ScopeCap_Unknown); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unable); + chef_set_default_scope (this, UserScope); + chef_allow_english(this); chef_allow_user_define(this); diff --git a/src/recipe/lang/Python/common.h b/src/recipe/lang/Python/common.h index 9a965b2..c4cd748 100644 --- a/src/recipe/lang/Python/common.h +++ b/src/recipe/lang/Python/common.h @@ -41,7 +41,12 @@ pl_python_group_prelude (void) chef_set_cooks (this, 2, "@ccmywish", "@happy-game"); chef_set_sauciers (this, 3, "@xyx1926885268", "@Kattos", "@Mikachu2333"); - chef_allow_local_mode (this, PartiallyCan, "部分包管理器支持项目级换源", "Some package managers support project-level source changing"); + /* 部分包管理器支持 ProjectScope,但是为了让流程执行下去,我们这里都写 ScopeCap_Able_And_Implemented */ + chef_set_scope_cap (this, ProjectScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unable); + chef_set_default_scope (this, UserScope); + chef_allow_english(this); chef_allow_user_define(this); diff --git a/src/recipe/lang/Python/pip.c b/src/recipe/lang/Python/pip.c index 7b4061b..1493f94 100644 --- a/src/recipe/lang/Python/pip.c +++ b/src/recipe/lang/Python/pip.c @@ -17,7 +17,11 @@ pl_python_pip_prelude (void) chef_set_cooks (this, 1, "@ccmywish"); chef_set_sauciers (this, 1, "@happy-game"); - chef_allow_local_mode (this, CanNot, NULL, NULL); + chef_set_scope_cap (this, ProjectScope, ScopeCap_Unable); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unable); + chef_set_default_scope (this, UserScope); + chef_allow_english(this); chef_allow_user_define(this); diff --git a/src/recipe/lang/Python/uv.c b/src/recipe/lang/Python/uv.c index eddf08f..32b6607 100644 --- a/src/recipe/lang/Python/uv.c +++ b/src/recipe/lang/Python/uv.c @@ -17,7 +17,11 @@ pl_python_uv_prelude (void) chef_set_cooks (this, 2, "@happy-game", "@MingriLingran"); chef_set_sauciers (this, 2, "@Kattos", "@ccmywish"); - chef_allow_local_mode (this, FullyCan, NULL, NULL); + chef_set_scope_cap (this, ProjectScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Able_But_Not_Implemented); + chef_set_default_scope (this, UserScope); + chef_allow_english(this); chef_allow_user_define(this); diff --git a/src/recipe/lang/R.c b/src/recipe/lang/R.c index 9a0a045..72af9ff 100644 --- a/src/recipe/lang/R.c +++ b/src/recipe/lang/R.c @@ -17,7 +17,11 @@ pl_r_prelude () chef_set_cooks (this, 1, "@ccmywish"); chef_set_sauciers (this, 1, "@hezonglun"); - chef_allow_local_mode (this, CanNot, NULL, NULL); + chef_set_scope_cap (this, ProjectScope, ScopeCap_Unknown); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unknown); + chef_set_default_scope (this, UserScope); + chef_deny_english(this); chef_allow_user_define(this); diff --git a/src/recipe/lang/Ruby/Ruby.c b/src/recipe/lang/Ruby/Ruby.c index fa8c852..0627e8a 100644 --- a/src/recipe/lang/Ruby/Ruby.c +++ b/src/recipe/lang/Ruby/Ruby.c @@ -24,7 +24,12 @@ pl_ruby_prelude (void) chef_set_cooks (this, 1, "@ccmywish"); chef_set_sauciers (this, 1, "@BingChunMoLi"); - chef_allow_local_mode (this, PartiallyCan, "支持 bundler. 不支持 gem", "Support bundler. Not support gem"); + /* 支持 bundler. 不支持 gem */ + chef_set_scope_cap (this, ProjectScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unable); + chef_set_default_scope (this, UserScope); + chef_allow_english(this); chef_allow_user_define(this); diff --git a/src/recipe/lang/Rust/Cargo.c b/src/recipe/lang/Rust/Cargo.c index be22e3f..f066934 100644 --- a/src/recipe/lang/Rust/Cargo.c +++ b/src/recipe/lang/Rust/Cargo.c @@ -17,7 +17,11 @@ pl_rust_cargo_prelude (void) chef_set_cooks (this, 2, "@Mikachu2333", "@ccmywish"); chef_set_sauciers (this, 1, "@happy-game"); - chef_allow_local_mode (this, FullyCan, NULL, NULL); + chef_set_scope_cap (this, ProjectScope, ScopeCap_Able_But_Not_Implemented); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unable); + chef_set_default_scope (this, UserScope); + chef_deny_english (this); chef_allow_user_define (this); diff --git a/src/recipe/lang/Rust/rustup.c b/src/recipe/lang/Rust/rustup.c index d822219..77a0e3e 100644 --- a/src/recipe/lang/Rust/rustup.c +++ b/src/recipe/lang/Rust/rustup.c @@ -20,7 +20,11 @@ pl_rust_rustup_prelude (void) chef_set_cooks (this, 1, "@ccmywish"); chef_set_sauciers (this, 2, "@Yangmoooo", "@Mikachu2333"); - chef_allow_local_mode (this, CanNot, NULL, NULL); + chef_set_scope_cap (this, ProjectScope, ScopeCap_Unable); + chef_set_scope_cap (this, UserScope, ScopeCap_Able_And_Implemented); + chef_set_scope_cap (this, SystemScope, ScopeCap_Unable); + chef_set_default_scope (this, UserScope); + chef_deny_english (this); chef_allow_user_define(this);