残りのハードコードUI文字列をサイト全体に翻訳する
- プレビューバナー、パブリックチャットウィジェット、アイチャットパネル、ライブサポートパネル、 exitIntentModal、FloatingSupportWidget は useTranslations() を使用します。 - プレビューBanner、チャット、 exitModal、サポートWidgetキーをen...
デルタの翻訳エンジン+ワイヤーすべてのハードコードされたUIのひもi18nに
翻訳システム: - translate.ts は delta モードで動作します。これは欠落しているキーのみです。 既存の翻訳キーは、英語と同一のAPIに送信されます。 保存されていない状態です。 CI の翻訳時間を80〜95%の典型的な実行でカットします。 - --force フラグを追加して、すべてのキーを再変換し...
Suppress Chrome は locale-switched ページのポップアップを自動翻訳
<html> と <meta name="google" に translate="no" を追加 そのため、Chromeは、ユーザーがすでに意図的にページを翻訳するために提供していません 別の言語に切り替えます.
クライアント側チェンジログの検閲を削除 — バックエンドで処理
単語の交換と秘密の赤字が変更ログSanitizationに移動 サービス (SecurityService) なので、DB ストレージと翻訳の前にサニタイズが起こります。 フロントエンドはテキストに触れる必要はありません.
翻訳チャンクサイズを50キーに減らし、指数関数的なバックオフ
150 キーはまだいくつかのプロバイダのために大きすぎる (長い段落値で プライバシー/利用規約/GDPR 今のところ: チャンクあたりの50のキー、指数関数の4のretries バックオフ(2s→4s→8s→15s)、フルリクエスト+応答をカバーする3分のタイムアウト、 chunk ごとのよりよい間違いのロギング.
大規模なペイロードでフェッチタイムアウトを防ぐためのチャンク翻訳リクエスト
1500以上のキーで、単一のバッチリクエストのペイロードは接続を引き起こしていました 一部の翻訳プロバイダのタイムアウト。 150キーのチャンクに分割 3つのレトリーとチャンクごとの2分のタイムアウト.
/calculatorと/pricing/offerをすべてのサイトマップに追加します。 i18n HTMLサイトマップラベル
- app/sitemap.ts: /pricing/offer と /calculator のエントリを locale の代替に追加します。 - app/api/sitemap/route.ts: 価格計算機と特別オファーエントリを追加 -サイトマップClient.tsx:すべてのラベル/記述のためのt()のコンポー...
拡張された en.json の完全な再変換を強制する翻訳ハッシュを削除します
すべてのページ ボディ コンテンツが en.json に抽出されました(4 並列 エージェント追加) 〜500以上の新機能、ホーム、セキュリティ、プライバシー、条件、gdpr、 クッキー、キャリア、ロードマップ、製品、ブログ、価格設定、デモ、計算機、提供)。 .translation-hash の強制 CI を削除して...
動的フェッチを介したワイヤーロケールとハッシュベースの翻訳スキップを追加
- ローカルのパラメータをセキュリティサービス変更ログAPI(ページ+ルート+クライアント)へ転送する - KBServiceの記事/ツリーフェッチ(セクション+スラグページ)にローカライズのパラメータを転送する - サブスクリプションカタログAPI(プライシングカタログ、価格設定、オファー、計算機ページ)へのローカラ...
すべてのクライアントコンポーネントへのワイヤ使用翻訳
すべてのハードコードされた文字列を(ページ)/*Client.tsxに置換します。 t("key") は、次のintl useTranslations を使用して呼び出します。 カバー25ファイル: セキュリティ、連絡先、デモ、価格設定、オファー、計算機、およびすべて 以前に配線されたコンポーネント (約, ブログ, ...
フルページボディコピーカバレッジでメッセージ/en.json を拡大
翻訳カタログを172キー(〜12名前空間)から300+に書き込む 26つの名前空間を渡るキー、すべてのユーザー ビジュアルのハード コードを抽出します すべてのクライアントとサーバーコンポーネントから英語の文字列: - 約、機能、セキュリティ、連絡先、デモ:CTA、ラベル、プレースホルダー、 ステップタイトル、成功/...
DYNAMIC SERVER USAGEを解決する 500のエラーと欠落した計算機のルート
- [locale]/layout.tsx (getMessages() に強制動的を追加すると、内部で headers() を使用します) - [kbSection]/page.tsx から生成されたStaticParams を削除 (KB コンテンツは動的) - kbSection、slug、価格設定、オファーペー...
ツールチップを追加し、言語セレクターのスクロール動作を修正
- 英語名を LOCALE CONFIG に全 22 個のローカルを追加 - 各言語ボタンにtitle={EnglishName}を追加(デスクトップ+モバイル) ブラウザツールチップとして英語名を表示 - 固定maxHeightを取り替えて下さい:calc (100vh - 140px)との380従って低下 通常のビ...
水平スクロールバーを防止するために広い言語セレクタのドロップダウン
260pxは「バサインドネシア」のようなエントリーが狭くなりました。 増加する 310px を追加し、スクロールバーを完全に排除するために隠されているオーバーフロー x: を追加します.
ポートフォワードトランスレートCIランナーから到達するService
Forgejoのランナーは、.svc.cluster.localを解決できないk0m1で実行 DNS。 トンネルのkamowstranslateサービスへのkubectlの港への前方を使用して下さい:80への localhost:18080 トランスレートのステップ中に、その後トンネルを殺します.
事前i18nアプリ/(ページ)/およびapp/page.tsxを削除
これらは、 git checkout -- app/ で誤って復元された 以前のベンダーの修正。 古いルートと新しいルート構造の両方が既存 Next.js が /(ページ)/* を locale なしで生成しようとする コンテキスト、SharedNavigation の usePathname 呼び出しをクラッシュしま...
Dockerfile を node:24-alpine にアップグレード
npm 10 はロックファイルを読み、npm ci を npm で失敗することはできません。 @swc/helpers@0.5.21 エラーが発生しました.
Bump Node.js から 24 までローカルの dev 環境に合わせて
npm ci は Node 22 / npm 10 で 2 つのバージョンが解決するので失敗します。 別のバージョンに、 @swc/helpers などの自動デプス (例: @swc/helpers).
重複ワークフローの実行を防止するために、concurrencyグループを追加
プッシュがワークフローと Workflow dispatch をトリガーする場合も、 (または2つのプッシュは迅速な成功に到着します)、両方の実行が実行されます 同時に。 通貨グループを追加すると、任意の進行をキャンセルします 新規起動時に同じワークフロー+ブランチを実行します.
次のintlとtsxの依存関係のpackage-lock.jsonをコミットする
続いてintl と tsx がインストールされていましたが、package-lock がインストールされました。 json がコミットされていない i18n の実装と同様に、Docker ビルドが失敗する モジュール「next-intl/plugin」が見つかりません.
Navの言語セレクターでオファーバッジを置き換える
2列フラグ+名前のドロップダウンをヘッダナビゲーションに追加します。 全22のサポートされているロケールを切り替える Locale の切換えの使用 next-intl Router.replace は現在のパスに滞在します。 モバイルメニューが取得 同じグリッドレイアウトで折りたたみ可能な言語セクション。 削除する p...
チャット*** — タイミングを確認し、バナーコピーを改善
- ***Provider: bootVerify 効果は ChallengeUrl に依存します validate() はウィジェットがマウントされた後にのみ呼び出されます。 rAF を 呼び出し前に DOM がペイントされていることを確認してください() - PublicChatWidget: display:no...
コンタクトフォーム、デモフォーム、チャットウィジェットにkamo***(作業の防止)を統合
- Add***provr再利用可能なコンポーネントは、ダークテーマスタイリングでCapchaウィジェットを包みます - お問い合わせフォーム:自動検証されるまで焦点、ゲートの提出を検証します - デモフォーム:フェーズ1、ゲート継続ボタンの間に焦点を自動検証 - チャットウィジェット: チャットが開いたときにPoWを...
有料アドオンとして電子メール, すべてのフォールバック価格設定データを更新
- KamoMailホスティング:$ 5 /ユーザー/ moアドオン(無料ではありません - 責任の懸念) - 第3党電子メールの統合:$ 2/user/moのアドオン - 更新された計算機のページのフォールバックデータ(古い$ 29 / $ 64の価格を示すもの) - 更新された価格設定ページフォールバック比較表 -...
ガラス形態設計でアニメーションクッキー同意バナーを追加
春のアニメーション、本質的/分析クッキーとフローティング左カード toggles、localStorage の永続性、およびフッターのCookie設定リンク 同意設定を再オープンする.
18DOFFプロモーションコードを使用して、有効期限を4月30、2026に更新します
EARLYBIRD から、NAV ヘッダーにマッチする 18DOFF へ変換されたプロモーションコード。 "Prelaunch" から "Early Bird" に nav テキストを更新し、一貫性を高めます。 2026-04-30 に提供のexpiryを置いて下さい.
フォールバック価格データを更新し、新しい生産価格に合わせて
API は 401 を返すため、マーケティングサイトではハードコードされたフォールバックデータを使用します。 すべてのフォールバックプラン、アドオン、バンドル、比較表を更新 新規価格にマッチ:スターター $34/$28, ビジネス $72/$59, 100 最大ユーザー, eSignatures addon, 無料のメ...
新しい生産価格のマーケティングサイトを更新する
- アドオンのアイコンマップと計算機トグルにeSignaturesを追加 - 有料アドオントグルではなく「無料」として表示されるメールホスティング - 更新されたFAQ:TCOの比較FAQ、電子メールホスティングFAQ、更新された年間保存を18%追加 - $2,500から$15,000-75,000(コンプター比較)に...
今日の変更ログカウントのためにUTC日付の代わりに24時間ウィンドウを使用する
サーバは UTC で実行されるので、米国のタイムゾーンで toISOString() が返される 明日の日付とコミットなしのマッチ。 代わりに24hロールウィンドウを使用します.