Skip to content

Use custom dictionary replacement(使用用户自定义字典替换)

License

Notifications You must be signed in to change notification settings

FTSTT/dict-replace

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 

Repository files navigation

StringTranslator

功能介绍

StringTranslator 是一个 PHP 类,用于根据给定的键值对字典进行字符串翻译。该类支持以下功能:

  1. 添加翻译对:用户可以通过键值对将翻译添加到字典中。
  2. 删除翻译对:可以根据键或值删除对应的翻译对。
  3. 字符串翻译:将输入字符串中的键进行匹配并替换为相应的值,支持长到短的贪婪匹配。
  4. 保护已翻译部分:在翻译过程中,已翻译的部分会被保护,不再被重复翻译。
  5. 随机字符串生成:可以生成随机字符串,确保该字符串不与任何已保护部分相同,也不包含字典中的任意键。

原理

字典管理

  • 添加翻译:使用 addTranslation($key, $val) 方法将键值对添加到翻译字典中。
  • 删除翻译:使用 removeTranslation($value, $byValue) 方法可以根据值或键删除翻译对。

字符串翻译

  • 贪婪匹配:在调用 translate($string) 方法时,程序会按键长度从长到短的顺序遍历字典,以确保较长的键优先匹配。
  • 保护机制:在匹配过程中,翻译后的部分会用占位符替代,并存储在保护数组中。最终在翻译完成后,程序会将占位符替换回其对应的翻译值。

随机字符串生成

  • 生成逻辑:调用 generateRandomString($length, $charList) 方法会生成一个指定长度的随机字符串。生成的字符串会检查是否与已保护部分或字典中的任意键相同。
  • 最大尝试次数:如果在最大尝试次数内未生成有效字符串,则会扩大字符范围(例如使用可打印字符集)以继续生成,确保生成的字符串有效。

使用示例

$translator = new StringTranslator();
$translator->addTranslation("hello", "你好");
$translator->addTranslation("world", "世界");

echo $translator->translate("hello world"); // 输出: 你好 世界

About

Use custom dictionary replacement(使用用户自定义字典替换)

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages