首页 web前端 js教程 我已经本地化了全球最好的短链平台

我已经本地化了全球最好的短链平台

Nov 07, 2024 am 06:33 AM

作为与Tolgee一起玩的一部分,我尝试将dub.co(一家成熟的开源公司)翻译成其他语言!我花了1个小时,结果令人惊讶!

I have localized the best short-linking platform in the world


在本教程中,我将引导您使用 Tolgee(一个专为快速自主翻译管理而设计的平台)在 Next.js 应用程序中轻松高效地进行本地化。

您还将学习如何将 Tolgee 与 Dub.co 集成,Dub.co 是一个流行的链接管理平台,允许用户以自己喜欢的语言访问应用程序并与之交互。

先决条件

要完全理解本教程,您需要对 React 或 Next.js 有基本的了解。

您还需要设置以下内容:

  • Tolgee 项目 - 至少有两种语言翻译的现有项目。
  • Tolgee CLI - 允许您使用命令行从计算机与 Tolgee 平台交互。
  • Docker - 运行 Dub.co 所必需的。它是一个开源平台,使用容器化来更轻松地创建、部署和运行应用程序。
  • Docker Compose - 用于定义和运行多容器 Docker 应用程序的软件应用程序。
  • Python(版本 3.8 或更高版本):配置 Dub.co 的某些包所必需的。

托尔吉是什么?

Tolgee 是一个开发人员友好的本地化平台,允许您将应用程序翻译成任何语言,而无需修改代码。它专为 Web 应用程序设计,但也支持移动和桌面应用程序。

使用 Tolgee,您无需在源代码中查找密钥、编辑本地化文件或为翻译人员执行手动导出数据。 Tolgee 提供上下文翻译、用于跟踪已翻译字符串的翻译记忆库、机器和自动翻译等。

I have localized the best short-linking platform in the world

请帮我们加一颗星。 ?

这会帮助我们创作更多这样的文章?

为 Tolgee 存储库加注星标 ⭐


如何在本地计算机上设置 Dub.co

Dub.co 是一个开源链接管理平台,允许营销团队为其链接添加强大的分析功能、创建短链接、为链接生成二维码等等。它是由 Steven Tey(前 Vercel 公司)创建的。

按照以下步骤在您的计算机上设置 Dub.co:

通过运行下面的代码片段克隆 Dub.co GitHub 存储库。

git clone https://github.com/dubinc/dub.git
登录后复制
登录后复制
登录后复制
登录后复制

导航到 dub 文件夹并安装项目依赖项:

git clone https://github.com/dubinc/dub.git
登录后复制
登录后复制
登录后复制
登录后复制

apps/web文件夹中,将.env.example文件重命名为.env

创建一个新的 Tinybird 帐户,并将您的管理员身份验证令牌复制到.env文件中。

pnpm install
登录后复制
登录后复制
登录后复制

导航到 packages/tinybird 目录并使用以下命令安装 Tinybird CLI:

TINYBIRD_API_KEY=<your_admin_auth_token>
登录后复制
登录后复制
登录后复制

在终端中执行以下命令,并在提示使用 Tinybird CLI 进行身份验证时输入您的管理员身份验证令牌:

pip3 install tinybird-cli
登录后复制
登录后复制
登录后复制

通过运行下面的代码片段来发布 Tinybird 数据源和端点:

tb auth
登录后复制
登录后复制
登录后复制

创建 Upstash 数据库,并将以下凭据从 REST API 部分复制到 .env 文件:

tb push
登录后复制
登录后复制
登录后复制

导航到 QStash 选项卡并将以下凭据复制到 .env 文件中。

UPSTASH_REDIS_REST_URL=<your_rest_url>
UPSTASH_REDIS_REST_TOKEN=<your_rest_token>
登录后复制

接下来,在 apps/web 目录中,运行以下命令来启动 Docker Compose 堆栈:

QSTASH_TOKEN=
QSTASH_CURRENT_SIGNING_KEY=
QSTASH_NEXT_SIGNING_KEY=
登录后复制

使用以下命令生成 Prisma 客户端并创建其数据库表:

docker-compose up
登录后复制

Dub.co 支持多种身份验证方式。 创建一个 GitHub 应用并复制下面的 URL 作为其回调 URL。

npx prisma generate
npx prisma db push
登录后复制

最后,启动开发服务器:

http://localhost:8888/api/auth/callback/github
登录后复制

您可以通过在浏览器中导航至 http://localhost:8888 来访问 Web 应用程序,创建工作区并开始使用。如果您遇到任何问题,请参阅完整的安装指南以获得更详细的帮助。

I have localized the best short-linking platform in the world


如何在 Next.js 应用程序中配置 Tolgee

在本节中,您将学习如何将 Tolgee 添加到 Next.js 应用程序并将其配置为支持多种语言,从而允许用户以其首选语言访问该应用程序。

要在 Next.js 应用程序中实现本地化,您需要安装 Tolgee React SDK。

pnpm dev
登录后复制

接下来,创建一个 Tolgee 平台帐户并登录到您的仪表板。

I have localized the best short-linking platform in the world

通过单击“项目”按钮并选择项目的首选语言来添加新项目。对于此应用程序,我们将使用五种语言:英语(作为基本语言)、中文、印地语、西班牙语和阿拉伯语。

I have localized the best short-linking platform in the world

单击仪表板右上角的个人资料图标,然后选择“项目 API 密钥”为您的 Tolgee 项目创建 API 密钥。

I have localized the best short-linking platform in the world

创建 .env.development.local 并将您的 API 密钥复制到文件中:

git clone https://github.com/dubinc/dub.git
登录后复制
登录后复制
登录后复制
登录后复制

从侧边栏菜单中选择翻译并将新翻译添加到项目中。

I have localized the best short-linking platform in the world

您可以创建翻译键,添加需要翻译的内容或字符串,提供描述,然后保存。

I have localized the best short-linking platform in the world

Tolgee 默认提供各种机器翻译选项,让您轻松将内容翻译成项目中可用的语言。

I have localized the best short-linking platform in the world

恭喜!您已成功在应用程序中设置了用于翻译的 Tolgee 平台。接下来,让我们在 Dub.co 项目中配置 Tolgee,以便直接在应用程序中轻松生成翻译。

如何在 Dub.co 中设置本地化

在本节中,我将指导您配置 Tolgee 以支持 Dub.co 项目中的客户端-服务器交互。

首先,安装 Tolgee CLI 软件包。

pnpm install
登录后复制
登录后复制
登录后复制

运行以下代码片段以使用您的项目 API 密钥登录您的 Tolgee 平台。

TINYBIRD_API_KEY=<your_admin_auth_token>
登录后复制
登录后复制
登录后复制

I have localized the best short-linking platform in the world

接下来,在 apps/web 目录中创建一个 i18n 文件夹。该文件夹将存储 JSON 文件,其中包含 Tolgee 平台项目中可用的各种语言的翻译。

pip3 install tinybird-cli
登录后复制
登录后复制
登录后复制

apps/web 目录中,通过运行以下代码片段来获取在 Tolgee 项目中创建的语言翻译:

tb auth
登录后复制
登录后复制
登录后复制

I have localized the best short-linking platform in the world

上面的代码片段会使用在 Tolgee 平台中创建的各种语言翻译自动填充 i18n 文件夹。

tb push
登录后复制
登录后复制
登录后复制

创建一个 tolgee 文件夹,其中将包含 apps/web 目录中的 Tolgee 配置:

git clone https://github.com/dubinc/dub.git
登录后复制
登录后复制
登录后复制
登录后复制

tolgee目录中添加shared.ts文件,然后将以下代码片段复制到该文件中:

pnpm install
登录后复制
登录后复制
登录后复制

上面的代码片段使用默认语言和后备语言配置 Tolgee,以在应用程序中启用本地化。

接下来,在 tolgee 目录中创建一个 client.tsx 文件,然后将以下代码片段复制到该文件中:

TINYBIRD_API_KEY=<your_admin_auth_token>
登录后复制
登录后复制
登录后复制

client.tsx 文件用于翻译客户端组件,还为服务器渲染组件启用上下文功能。上面的代码片段定义了 TolgeeNextProvider 组件,它包装了整个 Dub.co 应用程序,提供管理语言更改和翻译所需的配置。

tolgee 文件夹中创建自定义 locale.ts 文件,并将以下代码片段复制到其中:

pip3 install tinybird-cli
登录后复制
登录后复制
登录后复制

最后,在 tolgee 文件夹中创建一个 server.tsx 文件,然后将以下代码片段复制到该文件中:

tb auth
登录后复制
登录后复制
登录后复制

应用程序利用 React 服务器缓存在单个渲染中跨组件共享 Tolgee 实例。这允许应用程序在服务器组件中的任何位置使用 Tolgee 实例。

恭喜!您已成功配置 Tolgee,现在可以开始向应用程序内的各种内容添加翻译。


如何使用 Tolgee 翻译您的申请内容

在这里,您将学习如何翻译 Web 应用程序中的内容,并了解 Tolgee 如何实现轻松的应用内翻译。

首先,您需要使用 TolgeeNextProvider 组件包装整个 Dub.co 应用程序,该组件在 tolgee/client.tsx 中定义。导航到 apps/web/app 文件夹,然后转到 app.dub.co/(dashboard) 目录,并更新 layout.tsx 文件如下图:

tb push
登录后复制
登录后复制
登录后复制

上面的代码片段使用 Tolgee 提供程序包装仪表板路由,从而在整个应用程序中实现语言切换和本地化。

Tolgee 提供了两个钩子来帮助您在应用程序中选择和翻译文本:useTolgeeuseTranslate

  • useTolgee 钩子返回 Tolgee 实例,允许您订阅各种在翻译文本时触发重新渲染的事件。
  • useTranslate 挂钩包含一个翻译函数(t 函数),可直接在应用程序内呈现实际翻译。

通过添加以下代码片段来更新 app.dub.co/(dashboard)/[slug] 目录中的 page.tsx 文件:

“使用客户端”;
从“@/ui/layout/page-content”导入{ PageContent };
从“./page-client”导入 WorkspaceLinksClient;
//??托尔吉装置
从“@tolgee/react”导入{ useTolgee, useTranslate };
从“tolgee/locale”导入{ setUserLocale };


导出默认函数 WorkspaceLinks() {
  const { t } = useTranslate();
  const tolgee = useTolgee(["pendingLanguage"]);
  const 语言 = tolgee.getPendingLanguage();

  返回 (
    <pagecontent title="链接">
    {/**-- 用于选择首选语言的 HTML 输入 --*/}
      <div className="flex w-full flex-col px-10">
        <p>选择语言</p>
        



<p>上面的代码片段显示了一个 HTML <strong><select></select></strong> 标签,允许用户选择和在不同语言之间切换。 <strong>{t("hello")}</strong> 元素使用 Tolgee 的翻译函数根据所选语言呈现“hello”键的值。</p>

<p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173093241088271.jpg" class="lazy" alt="I have localized the best short-linking platform in the world"></p>

<p>最后,您可以更新整个应用程序的剩余内容以支持语言更改,从而允许用户以所选语言查看所有组件。</p>

<p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173093241165470.jpg" class="lazy" alt="I have localized the best short-linking platform in the world"></p>

<p>Tolgee 还提供上下文翻译功能,让您可以直接在应用程序中翻译字符串,无论是在开发还是生产中,只需单击文本并按住 Alt 或 Option 键即可。</p>

<p><img src="/static/imghw/default1.png" data-src="https://img.php.cn/upload/article/000/000/000/173093241362494.jpg" class="lazy" alt="I have localized the best short-linking platform in the world"></p>

<p>恭喜!您已成功完成本教程的项目。</p>

<p>本教程的源代码可在此处获取:</p>

<p>https://github.com/JanCizmar/dub-with-tolgee</p>


<hr>

<h2>
  
  
  结论
</h2>

<p>到目前为止,您已经学习了如何使用 Tolgee 将本地化添加到您的软件应用程序、实现对多种语言的支持,以及如何在实际项目中实现语言无缝切换。</p>

<p>Tolgee 是一个快速、以开发人员为中心的本地化平台,可让您为内容提供上下文并在几秒钟内生成翻译。它还支持多种 JavaScript 框架,包括 Vue、Angular 和 Svelte,并与 Figma 和 REST API 等工具集成以实现灵活性。</p>

<p>如果您希望为用户创建个性化体验,Tolgee 是一个绝佳的选择。请随意为我们的 GitHub 存储库做出贡献并加注星标,并加入我们的 Slack 社区与其他人联系并与团队互动。</p><p>感谢您的阅读!</p>


          

            
        </pagecontent>
登录后复制

以上是我已经本地化了全球最好的短链平台的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热门文章

<🎜>:泡泡胶模拟器无穷大 - 如何获取和使用皇家钥匙
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
北端:融合系统,解释
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
Mandragora:巫婆树的耳语 - 如何解锁抓钩
3 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

热门话题

Java教程
1665
14
CakePHP 教程
1423
52
Laravel 教程
1321
25
PHP教程
1269
29
C# 教程
1249
24
JavaScript引擎:比较实施 JavaScript引擎:比较实施 Apr 13, 2025 am 12:05 AM

不同JavaScript引擎在解析和执行JavaScript代码时,效果会有所不同,因为每个引擎的实现原理和优化策略各有差异。1.词法分析:将源码转换为词法单元。2.语法分析:生成抽象语法树。3.优化和编译:通过JIT编译器生成机器码。4.执行:运行机器码。V8引擎通过即时编译和隐藏类优化,SpiderMonkey使用类型推断系统,导致在相同代码上的性能表现不同。

Python vs. JavaScript:学习曲线和易用性 Python vs. JavaScript:学习曲线和易用性 Apr 16, 2025 am 12:12 AM

Python更适合初学者,学习曲线平缓,语法简洁;JavaScript适合前端开发,学习曲线较陡,语法灵活。1.Python语法直观,适用于数据科学和后端开发。2.JavaScript灵活,广泛用于前端和服务器端编程。

从C/C到JavaScript:所有工作方式 从C/C到JavaScript:所有工作方式 Apr 14, 2025 am 12:05 AM

从C/C 转向JavaScript需要适应动态类型、垃圾回收和异步编程等特点。1)C/C 是静态类型语言,需手动管理内存,而JavaScript是动态类型,垃圾回收自动处理。2)C/C 需编译成机器码,JavaScript则为解释型语言。3)JavaScript引入闭包、原型链和Promise等概念,增强了灵活性和异步编程能力。

JavaScript和Web:核心功能和用例 JavaScript和Web:核心功能和用例 Apr 18, 2025 am 12:19 AM

JavaScript在Web开发中的主要用途包括客户端交互、表单验证和异步通信。1)通过DOM操作实现动态内容更新和用户交互;2)在用户提交数据前进行客户端验证,提高用户体验;3)通过AJAX技术实现与服务器的无刷新通信。

JavaScript在行动中:现实世界中的示例和项目 JavaScript在行动中:现实世界中的示例和项目 Apr 19, 2025 am 12:13 AM

JavaScript在现实世界中的应用包括前端和后端开发。1)通过构建TODO列表应用展示前端应用,涉及DOM操作和事件处理。2)通过Node.js和Express构建RESTfulAPI展示后端应用。

了解JavaScript引擎:实施详细信息 了解JavaScript引擎:实施详细信息 Apr 17, 2025 am 12:05 AM

理解JavaScript引擎内部工作原理对开发者重要,因为它能帮助编写更高效的代码并理解性能瓶颈和优化策略。1)引擎的工作流程包括解析、编译和执行三个阶段;2)执行过程中,引擎会进行动态优化,如内联缓存和隐藏类;3)最佳实践包括避免全局变量、优化循环、使用const和let,以及避免过度使用闭包。

Python vs. JavaScript:社区,图书馆和资源 Python vs. JavaScript:社区,图书馆和资源 Apr 15, 2025 am 12:16 AM

Python和JavaScript在社区、库和资源方面的对比各有优劣。1)Python社区友好,适合初学者,但前端开发资源不如JavaScript丰富。2)Python在数据科学和机器学习库方面强大,JavaScript则在前端开发库和框架上更胜一筹。3)两者的学习资源都丰富,但Python适合从官方文档开始,JavaScript则以MDNWebDocs为佳。选择应基于项目需求和个人兴趣。

Python vs. JavaScript:开发环境和工具 Python vs. JavaScript:开发环境和工具 Apr 26, 2025 am 12:09 AM

Python和JavaScript在开发环境上的选择都很重要。1)Python的开发环境包括PyCharm、JupyterNotebook和Anaconda,适合数据科学和快速原型开发。2)JavaScript的开发环境包括Node.js、VSCode和Webpack,适用于前端和后端开发。根据项目需求选择合适的工具可以提高开发效率和项目成功率。

See all articles