DEV Community

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

Posted on • Originally published at apidog.com

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

これは、n8n翻訳ワークフローの3つの修正をGhost上で確認するためのスモークテスト投稿です。確認対象は、ソース投稿からのカテゴリコピー、ロケールごとの抜粋翻訳、そして翻訳記事内の内部ブログリンクの書き換えです。公開中のブログでこの投稿を見ている場合は、テスト完了後に削除してください。

今すぐApidogを試す

画像

この投稿で検証すること

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

  • カテゴリバッジが欠落する
  • custom_excerpt が空になる
  • 翻訳記事内の内部リンクが英語URLのまま残る

その結果、hreflangクラスターが弱まり、たとえばインドネシア語の読者が英語記事へ誘導される可能性がありました。

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

確認手順

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

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

  1. custom_excerpt に英語抜粋の翻訳が入っていること

    • 空欄ではないこと
  2. category フィールドがソース投稿から引き継がれていること

    • 値は Tutorials
  3. 本文内の内部リンクが同じロケール向けに書き換えられていること

    • 例: 日本語版では英語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のフォローアップです。

公開後にcurlで確認する

公開後、対象URLに対してHTTPステータスを確認します。

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

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

チェックリスト

各ロケールで、最低限以下を確認してください。

[ ] custom_excerpt が空ではない
[ ] category が Tutorials になっている
[ ] 内部リンクが対象ロケールの /{locale}/blog/{slug}/ に書き換えられている
[ ] インドネシア語版が /id/blog/... を使っている
[ ] Ghost上のスラッグとタグが期待どおりになっている
Enter fullscreen mode Exit fullscreen mode

確認後のクリーンアップ

11件の翻訳コピーすべてが正しく見える場合は、この投稿と11件の翻訳投稿をGhostから削除してください。これらは本番コンテンツとしての価値を持ちません。

問題がある場合は削除せず、診断用に保持してください。たとえば次のような問題が対象です。

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

そのうえで、ワークフロー担当者に連絡してください。

Top comments (0)