DEV Community

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

Posted on • Originally published at apidog.com

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

これは、n8n翻訳ワークフローの3つの修正を実環境で確認するためのスモークテスト投稿です。確認対象は、ソース投稿からのカテゴリ継承、ロケールごとの抜粋翻訳、そして翻訳記事内の内部ブログリンクを各ロケールのURLへ書き換える処理です。ライブブログ上で確認している場合、この投稿はテスト完了後に削除してください。

今すぐApidogを試す

image

この投稿で検証すること

以前のn8n翻訳ツールでは、翻訳済み投稿で以下の問題が発生していました。

  • カテゴリバッジが引き継がれない
  • custom_excerpt が空になる
  • 翻訳記事内の内部リンクがEN版URLのまま残る

これにより、たとえば日本語やインドネシア語の読者が英語ページへ誘導され、hreflangクラスターにも悪影響が出る可能性がありました。

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

検証手順

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

各翻訳版で、次の3点を確認してください。

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

リンク書き換えの確認対象

リンク書き換えの正規表現が複数パターンを処理できるか確認するため、以下の2形式を意図的に含めています。

翻訳パイプラインが正常であれば、日本語版では上記4つのURLがすべて次の形式に書き換えられます。

/jp/blog/{slug}/
Enter fullscreen mode Exit fullscreen mode

特にインドネシア語版では、次の形式になる必要があります。

/id/blog/{slug}/
Enter fullscreen mode Exit fullscreen mode

/ig/blog/... ではありません。

また、投稿自体は以下の形式でGhostに作成される想定です。

  • スラグ: …-id
  • タグ: 1Locale ID

この名前変更の末尾はReq 6のフォローアップです。

公開後の確認コマンド

翻訳済みページが正しく出力されているか、公開後にHTTPステータスと表示内容を確認します。

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

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

表示内容は、ブラウザまたはHTML取得でも確認できます。

curl -L https://apidog.com/jp/blog/translation-pipeline-smoke-test/ | grep -E "Tutorials|/jp/blog/"
Enter fullscreen mode Exit fullscreen mode

チェックリスト

翻訳ごとに、最低限次を確認してください。

[ ] custom_excerpt が空ではない
[ ] category に Tutorials が設定されている
[ ] 内部リンクが対象ロケールの /{locale}/blog/{slug}/ に書き換えられている
[ ] 日本語版は /jp/blog/... を指している
[ ] インドネシア語版は /id/blog/... を指している
[ ] /ig/blog/... が生成されていない
Enter fullscreen mode Exit fullscreen mode

検証後のクリーンアップ

11件すべての翻訳版が正しく見える場合は、この投稿とGhost上の11件の翻訳投稿を削除してください。これらは本番環境で価値を持つ記事ではありません。

問題が見つかった場合は、削除せずに診断用として残してください。

例:

  • カテゴリが欠落している
  • 抜粋が空になっている
  • 内部リンクがEN版URLのまま残っている
  • ロケールパスが誤っている

その場合は、該当する翻訳URL、期待値、実際の出力をまとめて、ワークフロー担当者に連絡してください。

Top comments (0)