4作者: XAKEPEHOK7 个月前
我们的用例:我们的应用程序有俄语(我们的母语)和英语。我们需要快速、轻松地添加更多语言(根据客户要求)。我们的翻译文件一团糟:重复的字符串、使用字符串拼接而不是占位符、ru/en 文件中不同的字符串顺序、尾随空格等等。<p>所以我写了一个辅助工具来解决所有这些问题。现在,添加一种新语言只需 40 分钟和 2 美元。它效果很好,所以我清理了项目并将其作为开源发布。<p># 主要功能:<p>翻译成新语言同时从两种源语言进行:主要语言(我们的情况是俄语)和次要语言(我们的情况是英语)。次要语言不是必需的,但强烈推荐。无论您有多少其他语言,只有主要语言和次要语言会被发送到 LLM 上下文中进行翻译。<p>顺便说一句,上下文还包括附近的字符串和词汇表(稍后会详细介绍),并且提示的设计使得 LLM 首先评论字符串是什么,在哪里使用,然后才翻译它。根据我的测试,这种组合极大地提高了翻译质量。<p># 关于翻译:<p>- 支持的格式:目前仅支持 JSON(扁平 &amp; 结构化)+ i18next 风格的复数形式,但很容易添加新格式。<p>- 复数形式:支持基数和序数形式。示例:<p>{ &quot;key_one&quot;: &quot;1 个文件&quot;, &quot;key_other&quot;: &quot;{{count}} 个文件&quot; }<p>- 占位符:${likeJs}, {{doubleCurve}}, {singleCurve} — 您可以轻松添加新格式。首选格式按项目设置。<p>- 字符串顺序被保留!这对于含义和 LLM 都很重要。<p>- 多行字符串:支持 \r 和 \n(可配置)。<p>- 字符串注释:您可以添加说明,仅存储在应用程序中。默认情况下,它们由 LLM 生成。<p>- 建议翻译:您可以单独提供推荐的翻译(例如,来自专业翻译人员或 AI 建议)。<p>- 批量或单个翻译,可为每种语言选择 LLM。<p>- 重用翻译:对于批量翻译,已经翻译过的相同字符串会被重用。<p>- 旧字符串/翻译不会被删除,而是保留在数据库中。这部分涵盖了 git 中的分支场景,当某些分支已经有新的翻译,而某些分支没有时。什么都不会丢失。<p># 字符串验证<p>当我们开始认真处理翻译和本地化时,我们很快意识到我们的翻译文件一团糟。不仅有未翻译的字符串,还有过时的翻译(从主要语言中删除的字符串)、用字符串拼接替换占位符的地方、主要语言(俄语)使用“:”,但次要语言(英语)没有,或者仅在一个地方存在换行符。甚至主要语言有占位符但次要语言忘记了的情况。<p>现在会检查所有这些情况,并且任何上传/翻译的字符串都会收到一个警告标志,如果:<p>- 翻译字符串为空<p>- 有前导或尾随空格<p>- 字符串包含多个连续空格<p>- 翻译与主要或次要语言相同(电子邮件、api、ip、url、uri、id 除外)<p>- 缺少主要语言中存在的占位符<p>- 翻译有主要语言中不存在的占位符<p>- 主要语言和翻译之间的换行符 (\r 或 \n) 数量不同<p>- 主要语言和翻译之间的冒号 : 数量不同<p>- 语言缺少或有多余的复数形式值<p>- 复数形式值在换行符或冒号上有所不同<p>无论验证如何,用户都可以手动将字符串标记为已验证,从而实现灵活的过滤和批量翻译控制。<p>更多信息和 GIF 动图请访问 GitHub:<a href="https:&#x2F;&#x2F;github.com&#x2F;XAKEPEHOK&#x2F;lokilizer&#x2F;">https:&#x2F;&#x2F;github.com&#x2F;XAKEPEHOK&#x2F;lokilizer&#x2F;</a>
1作者: mb21007 个月前
我最初用 PHP 和后来的 Ruby on Rails 开始了 Web 开发,然后经历了整个 React 和 Next 周期,最近又发现了 Islands 架构和 Astro,以及它那久违的 MPA(多页面应用)架构。但我感觉事情还可以更简单。<p>Mastro 是我试图提炼 Web 开发精髓的尝试。它由四个相互关联的部分组成:<p> - HTML、CSS 和 JS 入门指南:教你如何构建网站并将其发布到 GitHub Pages——所有操作都在你的浏览器中完成。 - 一个作为 VSCode 浏览器扩展运行的静态站点生成器。 - 一个极简 Web 框架,没有打包器,没有客户端 JS,也没有臃肿的代码。 - Reactive Mastro:一个微型(2.8k min.gz)客户端响应式 GUI 库,适用于你现有的 MPA 或 Mastro 项目。
1作者: FerkiHN7 个月前
我一直在思考一个问题——现代浏览器都经过优化,可以解析和运行 HTML、CSS 和 JavaScript。但如果浏览器被设计成直接加载和运行用 WebAssembly 编写的网站呢? 这难道不会提高性能、启动速度,并减少解析多种格式的开销吗?为什么没有人创建一种浏览器,让网站的默认语言是 WASM 呢? 是技术限制、安全问题,还是仅仅是生态系统缺乏兴趣? 我很想听听 Hacker News 社区的看法。
1作者: gusbartholomew7 个月前
我们开发了一个简单的工具,帮助可持续发展领域的专业人士用通俗易懂的商业语言解释他们的项目——针对财务、运营、人力资源或法务等部门。<p>它被称为“可持续术语翻译器”<p>我们为什么开发它: 可持续发展团队常常难以获得内部支持,因为他们使用行业术语(范围 3、TCFD、再生等),而公司其他部门则使用 KPI、利润率和风险等术语。我们希望通过一个快速、有趣且有用的工具来弥合这一差距。<p>工作原理:<p>输入任何可持续发展项目(例如,“我们需要根据 CSRD 减少供应链的碳排放”)<p>选择您要推介的部门(例如,财务部)<p>它会返回一个翻译结果,用该部门理解的语言解释相同的观点(例如,成本降低、风险缓解、长期盈利能力)<p>构建工具所用技术:<p>Webflow 前端<p>Make.com Webhook<p>OpenAI API(带有部门上下文逻辑的 GPT-4 提示)<p>为什么发布在 HN? 我们知道许多 HN 读者正在构建内部工具或应对 B2B 变革——这种方法在其他领域也可能有用(例如,人力资源技术、合规性、产品战略)。<p>试用 → <a href="https:&#x2F;&#x2F;www.leafr.com&#x2F;sustainababble-translator" rel="nofollow">https:&#x2F;&#x2F;www.leafr.com&#x2F;sustainababble-translator</a><p>我们欢迎反馈、功能建议,甚至是严厉的批评。