Skip to content
| Marketplace
Sign in
Visual Studio>Tools>DatLocation
DatLocation

DatLocation

wenmingming

|
1 install
| (0) | Free
A Visual Studio plugin for visualizing and editing localised .dat files
Download

DAT 本地化可视化插件

Visual Studio 插件,用于可视化和编辑本地化 .dat 文件。

image.png

功能特性

✅ 核心功能

  • 多文件聚合视图:将 WordKey.dat、Chinese.dat、English.dat 合并为统一表格
  • 自动触发:打开任意本地化文件时自动启动工具窗口
  • 可视化编辑:类似 Excel 的表格编辑体验
  • 缺失翻译高亮:自动标记未翻译的条目(橙色背景)
  • 保持文件结构:保存时不改变原文件顺序,不删除未知 Key

📋 UI 特性

  • 三列表格:Key(只读)| 中文 | English
  • 统计信息:显示总条目数、缺失中文数、缺失英文数
  • 实时更新:编辑后立即显示未保存状态
  • 工具栏:保存、刷新按钮

文件格式

WordKey.dat(主 Key 文件)

auto
start
stop
  • 每行一个 Key
  • 无 Tab 分隔符
  • 顺序即逻辑顺序

语言文件(Chinese.dat / English.dat)

auto	自动
start	启动
stop	停止
  • 格式:Key<TAB>Value
  • 使用 Tab 分隔
  • Key 必须与 WordKey.dat 对齐

使用方法

安装

  1. 双击 .vsix 文件安装插件
  2. 重启 Visual Studio

使用

  1. 自动触发:在 Visual Studio 中打开任意 .dat 文件(WordKey.dat、Chinese.dat、English.dat)
  2. 手动打开:工具 → DAT 本地化编辑器
  3. 编辑翻译:直接在表格中编辑中文或英文列
  4. 保存更改:点击"保存"按钮

快捷操作

  • Tab:在单元格间切换
  • Enter:进入/退出编辑模式
  • Ctrl+S:保存(需先点击表格获得焦点)

技术架构

MVVM 架构

Models/
  ├── LocalizationRow.cs        # 数据模型
  └── DatFileParser.cs          # 文件解析器

ViewModels/
  └── LocalizationViewModel.cs  # 视图模型

Views/
  ├── LocalizationToolWindow.cs           # 工具窗口
  ├── LocalizationToolWindowControl.xaml  # WPF UI
  └── LocalizationToolWindowControl.xaml.cs

Commands/
  └── OpenLocalizationWindowCommand.cs    # 命令处理

DatLocalizationViewerPackage.cs           # 主包(文件监听)

关键特性实现

1. 文件监听(IVsRunningDocTableEvents)

public int OnBeforeDocumentWindowShow(uint docCookie, int fFirstShow, IVsWindowFrame pFrame)
{
    // 检测打开的文件是否为本地化文件
    // 如果是,自动打开工具窗口
}

2. 保存策略

// 保持原文件顺序
// 不删除未知 Key
// 只更新已存在 Key 的 Value
SaveLanguageFile(filePath, updatedValues);

3. 缺失翻译高亮

<DataTrigger Binding="{Binding IsChineseMissing}" Value="True">
    <Setter Property="Background" Value="#FFFFEBCD"/>
</DataTrigger>

设计原则

✅ 必须遵守

  • 以 WordKey.dat 为唯一基准
  • 不改变原文件顺序
  • 不删除未知 Key
  • Key 区分大小写
  • 使用 Tab 分隔符

❌ 禁止操作

  • 不合并三个文件为一个
  • 不改变 dat 文件格式
  • 不自动排序 Key
  • 不在插件中生成或删除 Key

扩展性

支持更多语言

修改 DatFileParser.LoadLocalizationData() 和 LocalizationViewModel.LoadData():

var languageFiles = new List<string>
{
    "Chinese.dat",
    "English.dat",
    "Japanese.dat"  // 新增语言
};

添加新列

在 LocalizationRow 中添加属性,然后在 XAML 中添加对应列。

构建

要求

  • Visual Studio 2022
  • .NET Framework 4.8
  • Visual Studio SDK

构建步骤

# 1. 打开解决方案
# 2. 还原 NuGet 包
# 3. 构建项目(Release 配置)
# 4. 输出:bin\Release\DatLocalizationViewer.vsix

故障排除

工具窗口未自动打开

  • 确保文件名为 WordKey.dat、Chinese.dat 或 English.dat
  • 确保同目录下存在 WordKey.dat

保存失败

  • 检查文件是否被其他程序占用
  • 确保有写入权限

高亮不显示

  • 确保单元格为空或只包含空白字符
  • 刷新窗口重新加载数据

许可证

MIT License

作者

Wenmingming

版本历史

v1.0.0 (2025-12-31)

  • 初始版本
  • 支持 WordKey.dat、Chinese.dat、English.dat
  • 自动文件监听
  • 缺失翻译高亮
  • MVVM 架构
  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft