1

Mathematica 8 的DictionaryLookup函数"English"默认用作语言。有没有办法将默认语言设置为"BritishEnglish"or "Spanish"

提前致谢。

4

1 回答 1

2

似乎没有此选项,但您可以修改 的定义DictionaryLookup以适合您。

我将使用的方法依赖于 DownValues 的自动排序,并且是为版本 7 编写的,因此可能需要调整。您可以查看DownValues[DictionaryLookup]该函数的编写方式,因为它是顶级Mathematica代码。

$dictionaryLanguage = "Spanish";

Unprotect[DictionaryLookup];

DictionaryLookup[pat : Except[_List], x___] /;
  ! TrueQ[$dicLang] && ValueQ[$dictionaryLanguage] :=
 Block[{$dicLang = True},
  DictionaryLookup[{$dictionaryLanguage, pat}, x]
  ]

DownValues[DictionaryLookup] = 
  RotateRight @ DownValues[DictionaryLookup];

Protect[DictionaryLookup];

使用此定义,如果$dictionaryLanguage设置了该值,则该值将用于语言。您可以使用 恢复默认行为$dictionaryLanguage =.。例子:

$dictionaryLanguage = "Spanish";

DictionaryLookup["*orac*", 3]

{"adoración", "aminoración", "colaboración"}

$dictionaryLanguage =.;

DictionaryLookup["*orac*", 3]

{“coracle”、“coracles”、“Horace”}

知道你打电话也在DictionaryLookup. 您可以为这样的语言加载字典:

DataPaclets`Dictionary`ReloadDictionary["Dutch"]

将数据放在DataPaclets`Dictionary`$Dictionary. 示例搜索:

Pick[#, # ~StringMatchQ~ "*fzand*"] ~Take~ 4 & @ DataPaclets`Dictionary`$Dictionary

{“afzand”、“afzandde”、“afzandden”、“afzanderij”}

等效DictionaryLookup查询:

DictionaryLookup[{"Dutch", "*fzand*"}, 4]

{“afzand”、“afzandde”、“afzandden”、“afzanderij”}

如果您经常使用这些工具,您可以在上下文路径中使用它们:

AppendTo[$ContextPath, "DataPaclets`Dictionary`"]

然后你可以使用ReloadDictionary$Dictionary原样,没有上下文名称。

于 2012-10-05T10:17:17.200 回答