Freezedry
EU全域でフリーズドライヤーを販売するWooCommerceストア。8つの稼働言語、すべての国で正しい送料、より軽く速いサイト。

課題
EU全域でフリーズドライヤーを販売するリトアニアのストアでは、機械翻訳がたびたび「止まって」しまい、新しい言語が公開されないままで、いくつかの国では壊れたページや空のページが表示されていました。
解決策
- 翻訳:本当の原因を突き止めました。すべての翻訳エンジンがオフになっており、登録も壊れていたのです。自動のDeepL翻訳を動くようにし、カスタムフィールドを翻訳可能にし、17ファイルでテーマをハードコードされた言語からgettextに移行。チェックアウトのプレースホルダー、VAT名、お問い合わせフォームの文言、サイズ表記を全言語でローカライズ。
- 新しい言語:フランス語、続いてスペイン語、イタリア語、フィンランド語。商品一覧、配送ラベル、チェックアウト、税の名称も含みます。
- トップページ:旧スライダーへの安全なフォールバック付きのスライダー連携、言語別・デバイス別のスライダー、コードなしでスライダーを言語に割り当てられる管理ページ、WooCommerceのデータから作るインタラクティブな「販売実績のある国」のヨーロッパ地図。
- 配送:カテゴリの照合がリトアニア語/英語のスラッグだけで行われていたため、4か国でカートの送料が無料になっていました。現在はどの言語でも翻訳レイヤーを通してカテゴリを照合し、カテゴリのない商品はログに記録します。
- 信頼性:ページを503エラーで落としていた再帰を修正、空のフィールドによるPHP 8の致命的エラーを13か所でガード、PHP 8.2の非推奨警告を解消、CDNのライブラリを整合性ハッシュ付きで正確なバージョンに固定。
- 速度:言語ごとのヒーロー画像をWebPに変換、CSSとJSのキャッシュバスティング。
- プロセス:本番で直接行われていた変更をバイト単位でgitに同期、レビュー済みのプルリクエストによるブランチ運用、データベースのバックアップ付きでステージングと本番にデプロイ。
成果
8言語(LT、EN、DE、NL、FR、ES、IT、FI)が稼働中です。フランス語は全32ページと26商品で公開しました。イタリア、スペイン、フィンランドでは全26商品の送料が正しくなりました。約12 GBまで膨らんでいたデバッグログを止め、別のログは194 MBから8.5 KBに、ヒーロー画像は約1.5 MBから143 KBになりました。