Socket
Book a DemoInstallSign in
Socket

jtcg_locale_detector

Package Overview
Dependencies
Maintainers
2
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

jtcg_locale_detector

1.0.2
bundlerRubygems
Version published
Maintainers
2
Created
Source

LocaleDetector Ruby Gem

多語言地區檢測工具的Ruby綁定,特別針對中文繁簡體檢測進行優化。

特色功能

  • 🌍 支援 176 種語言檢測
  • 🇨🇳 特別優化中文繁體 (zh-TW) 和簡體 (zh-CN) 檢測
  • ⚡ 高效能檢測
  • 📊 多種檢測模式和輸出格式
  • 🔧 命令列工具和 Ruby API
  • 🐍 基於成熟的Python語言檢測引擎

安裝

將此行添加到應用程式的 Gemfile:

gem 'locale_detector'

然後執行:

$ bundle install

或者手動安裝:

$ gem install locale_detector

系統要求

  • Ruby 2.7.0 或更高版本
  • Python 3.11 或更高版本
  • pip (用於安裝 Python 依賴)

Python 依賴安裝

安裝 gem 後,需要安裝 Python 依賴:

$ rake install_python_deps

或手動安裝:

$ pip install -r python/requirements.txt

使用方法

Ruby API

基本檢測

require 'locale_detector'

# 檢測單一文本
result = LocaleDetector.detect("Hello world")
puts result["locale"]  # => "en-US"

# 檢測中文繁體
result = LocaleDetector.detect("繁體中文測試")
puts result["locale"]  # => "zh-TW"

# 檢測中文簡體
result = LocaleDetector.detect("简体中文测试")
puts result["locale"]  # => "zh-CN"

批次檢測

texts = ["Hello world", "繁體中文", "简体中文", "Bonjour le monde"]
results = LocaleDetector.detect_batch(texts)

results.each_with_index do |result, index|
  puts "Text #{index + 1}: #{result['locale']}"
end

從檔案檢測

result = LocaleDetector.detect_file("path/to/text/file.txt")
puts result["locale"]

進階選項

# 使用不同的檢測模式
client = LocaleDetector::Client.new(
  mode: "ratio",           # 'conversion', 'ratio', 'both'
  low_memory: false,       # 使用低記憶體模式
  output_format: "json"    # 'simple', 'json', 'detailed'
)

result = client.detect("測試文本")

# 獲取詳細檢測信息
detailed_result = client.detect_with_details("測試文本")
puts detailed_result.inspect

命令列工具

安裝 gem 後,您可以使用 locale-detector 命令:

# 檢測單一文本
$ locale-detector "Hello world"
en-US

# 從檔案檢測
$ locale-detector --file input.txt

# 批次處理
$ locale-detector --batch file1.txt file2.txt

# 使用不同模式
$ locale-detector "中文文本" --mode ratio --details

# JSON 輸出
$ locale-detector "測試" --output-format json
{
  "locale": "zh-TW"
}

# 詳細信息
$ locale-detector "測試" --output-format detailed --details

支援的選項

檢測模式

  • conversion: 快速模式,使用字符轉換比較
  • ratio: 準確模式,使用字符比例分析(預設)
  • both: 混合模式,結合兩種方法

輸出格式

  • simple: 簡單文本輸出(預設)
  • json: JSON 格式輸出
  • detailed: 詳細信息輸出

支援的語言

本工具支援 176 種語言的檢測,包括但不限於:

  • 中文變體:zh-TW (繁體), zh-CN (簡體), zh-HK, zh-MO, zh-SG
  • 歐洲語言:en, es, fr, de, it, pt, ru, nl, sv, no, da
  • 亞洲語言:ja, ko, th, vi, hi, ar, he, tr
  • 其他語言:查看 LocaleDetector::Detector.supported_languages

API 參考

LocaleDetector

類方法

  • LocaleDetector.detect(text, **options) - 檢測單一文本
  • LocaleDetector.detect_batch(texts, **options) - 批次檢測
  • LocaleDetector.detect_file(file_path, **options) - 從檔案檢測

LocaleDetector::Client

實例方法

  • #detect(text) - 檢測單一文本
  • #detect_batch(texts) - 批次檢測
  • #detect_file(file_path) - 從檔案檢測
  • #detect_with_details(text) - 獲取詳細檢測信息

選項

  • mode: 檢測模式('conversion', 'ratio', 'both')
  • low_memory: 使用低記憶體模式
  • output_format: 輸出格式('simple', 'json', 'detailed')
  • encoding: 檔案編碼(預設: 'utf-8')

LocaleDetector::Detector

類方法

  • Detector.supported_languages - 取得支援的語言列表
  • Detector.chinese_variants - 取得中文變體信息
  • Detector.detection_modes - 取得可用的檢測模式
  • Detector.language_supported?(language_code) - 檢查是否支援某語言
  • Detector.chinese_variant?(locale) - 檢查是否為中文變體

開發

獲取原始碼後,執行 bin/setup 安裝依賴。然後,執行 rake spec 來運行測試。您也可以執行 bin/console 來取得互動式提示符進行實驗。

要將此 gem 安裝到本地機器,執行 bundle exec rake install。要發布新版本,更新 version.rb 中的版本號,然後執行 bundle exec rake release,這將創建一個 git 標籤並推送 .gem 檔案到 rubygems.org

貢獻

Bug 報告和 pull request 歡迎在 GitHub 上提交:https://github.com/jtcg/locale-detector

授權

作者與貢獻者

  • 原作者: 原作者姓名 - 核心語言檢測引擎開發
  • Ruby Gem 打包: JTCG Team - Ruby 綁定與 gem 打包
  • 維護者: JTCG Team

開源授權

此 gem 可在 MIT License 條款下使用。

致謝

本工具基於以下開源專案:

  • FastText - Facebook 的語言檢測模型
  • OpenCC - 中文繁簡轉換
  • zhon - 中文字符數據

FAQs

Package last updated on 01 Jun 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.