DEV Community

Cover image for 翻訳パイプライン スモークテスト
Akira
Akira

Posted on • Originally published at apidog.com

翻訳パイプライン スモークテスト

これは、n8n翻訳ワークフローの3つの動作を検証するためのスモークテスト用投稿です。確認対象は、ソース投稿からのカテゴリのコピー、ロケールごとの抜粋の翻訳、そして翻訳済み記事内の内部ブログリンクのロケール別書き換えです。ライブブログ上でこの投稿を見ている場合、テスト完了後に削除されるべき一時的な投稿です。

今すぐApidogを試す

SCR-20260519-hasr

この投稿で検証すること

n8nトランスレーターは以前、翻訳済み投稿で次の情報を正しく引き継げていませんでした。

  • カテゴリバッジ
  • custom_excerpt
  • 翻訳済み記事内の内部リンク先

たとえば、LLMチュートリアルのポルトガル語版ではカテゴリと抜粋が欠落していました。また、翻訳済み記事内の内部リンクが英語版URLのままだったため、hreflangクラスターが弱まり、インドネシア語の読者が英語記事へ誘導される問題がありました。

最新のワークフロー改訂では、これらを修正しています。この投稿は、Ghost環境で修正がエンドツーエンドで動作するかを確認するためのものです。

テスト手順

この投稿を公開すると、n8nトランスレーターが1回実行され、Ghostに11件の翻訳済み下書き、または公開済み投稿が生成される想定です。

各翻訳コピーで、次の3点を確認します。

  1. custom_excerpt が英語の抜粋を翻訳した内容で入力されていること
    • 空ではないこと
  2. category フィールドに、ソース投稿の Tutorials が引き継がれていること
  3. 本文内の内部リンクが、同じロケールのURLへ書き換えられていること
    • 例: 日本語版では英語URLではなく https://apidog.com/jp/blog/free-cursor-ai/ を指すこと

リンク書き換えの確認

リンク書き換え用の正規表現が複数のURL形式を処理できるか確認するため、本文内に2種類のリンク形式を置いています。

絶対パス

ルート相対パス相当のリンク

翻訳パイプラインが正常であれば、日本語版では上記4つのURLがすべて /jp/blog/{slug}/ 形式に書き換えられるはずです。

特にインドネシア語版では、リンク先が /id/blog/{slug}/ になることを確認します。/ig/blog/... ではありません。また、投稿自体はGhost上でスラッグ …-id とタグ 1Locale ID を持つ必要があります。このリネームの末尾はReq 6のフォローアップです。

curlで公開後の状態を確認する

公開後、対象ロケールのURLに対してヘッダーを確認します。

# Verify a translation came out cleanly (after publishing):
curl -I https://apidog.com/jp/blog/translation-pipeline-smoke-test/
# expect 200, and the rendered page to show
#   - "Tutorials" category badge
#   - a Japanese excerpt under the title
#   - any internal links rewritten to /jp/blog/...
Enter fullscreen mode Exit fullscreen mode

期待値は次のとおりです。

  • HTTPステータスが 200
  • ページ上に Tutorials のカテゴリバッジが表示される
  • タイトル下に日本語の抜粋が表示される
  • 内部リンクが /jp/blog/... に書き換えられている

確認後のクリーンアップ

11件すべての翻訳コピーが正しく生成されている場合、この投稿と11件の翻訳済み投稿をGhostから削除してください。これらは本番環境で価値を持たないテスト用コンテンツです。

以下のような問題がある場合は、診断のために投稿を削除せず保持してください。

  • カテゴリが欠落している
  • 抜粋が空欄になっている
  • 内部リンクのロケール書き換えが誤っている
  • インドネシア語版が /id/ ではないパスに向いている

問題を確認したら、ワークフローの所有者に連絡してください。

Top comments (0)