DEV Community

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

Posted on • Originally published at apidog.com

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

これは、n8n翻訳ワークフローの3つの挙動を検証するための小さなスモークテスト記事です。確認対象は、ソース記事からのカテゴリコピー、ロケールごとの抜粋翻訳、そして翻訳記事内の内部ブログリンクを各ロケール向けURLへ書き換える処理です。ライブブログ上でこの記事を見ている場合、検証完了後に削除される前提のテスト投稿です。

今すぐApidogを試す

この投稿が存在する理由

n8n翻訳ツールでは以前、翻訳記事からカテゴリバッジと抜粋が欠落する問題がありました。たとえば、当社の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/ を指すこと

書き換えを確認するリンク(クリックしないでください — テスト対象です)

リンク書き換えの正規表現が複数パターンに対応しているか確認するため、次の2種類のリンク形式を意図的に含めています。

翻訳パイプラインが正常に機能している場合、日本語版ではこれら4つのURLがすべて /jp/blog/{slug}/ 形式に書き換えられているはずです。

特にインドネシア語版では、リンク先が /id/blog/{slug}/ になる必要があります。/ig/blog/... ではありません。また、投稿自体はGhost内でスラッグ …-id、タグ 1Locale ID を持つ形で作成される想定です。この名前変更の末尾は、Req 6のフォローアップです。

レンダラー確認用の小さなコードブロック

公開後、次のようにレスポンスとレンダリング結果を確認します。

# 翻訳が正しく出力されたか確認する(公開後):
curl -I https://apidog.com/jp/blog/translation-pipeline-smoke-test/

# 期待値:
# - HTTP 200
# - レンダリングされたページに「Tutorials」カテゴリバッジが表示される
# - タイトル下に日本語の抜粋が表示される
# - 内部リンクが /jp/blog/... に書き換えられている
Enter fullscreen mode Exit fullscreen mode

検証後のクリーンアップ

11個すべての翻訳コピーが正しく見える場合、この投稿と11個の翻訳記事をGhostから削除してください。これらは本番環境で価値を持たないテスト投稿です。

次のような問題がある場合は、診断用に投稿を残し、ワークフロー担当者に連絡してください。

  • カテゴリが欠落している
  • 抜粋が空欄になっている
  • 内部リンクが英語版URLのままになっている
  • ロケール別URLへの書き換えが間違っている

Top comments (0)