1725659481
2024-09-05 10:05:43
警告: ノルウェー語の言語処理に関するブログ投稿 (ただし、他の言語やユースケースにも適用できる可能性があります)。
Optimizely には、言語を操作するための柔軟で強力な方法が複数あります。Azure Cognitive Services または Chat GPT による自動翻訳からフォールバックの処理まで、顧客は新しい言語を簡単に設定し、組み込みのワークフローとプロジェクト管理を使用して一度に翻訳することができます。
使用事例
ノルウェーには、ノルウェー語の公式表記法としてブークモール語とニーノシュク語の 2 つがあります。公共の Web サイトではコンテンツの少なくとも 25% をニーノシュク語で公開しなければならないという法律があります。これはさまざまな方法で実現できますが、言語は非常に似ているため、多くの Web サイトでは両方の言語形式の記事を混在させています。Optimizely CMS の標準言語処理とフォールバックを使用すると、これを体系的に簡単に実現できます。言語のメタ タグを簡単に表示したり、正しいラベルを使用したり、2 つの言語形式のページに異なるロゴを表示したりできます。
Alloy テンプレートを使用してこれをどのように設定できるか見てみましょう。
ウェブサイトの言語にブークモール語とニーノシュク語を追加します。
ブークモール語の Web アドレス プレフィックスを「no」に、ニーノシュク語の Web アドレス プレフィックスを「nn」に設定します。


言語を有効にし、ブークモールのフォールバック言語としてニーノシュクを設定します。
URL を /nn から /no にリダイレクトする
/nn から /no に URL をリダイレクトするミドルウェアを作成します。これは主に「Web サイトで表示」リンクを使用する編集者向けですが、訪問者が常に正しい URL でサイトにアクセスできるようにもします。
これはサイト全体に当てはまるのでしょうか、それともサイトの一部を両方の言語で利用できるようにする必要があるのでしょうか? 実際の要件に応じて、ミドルウェアは次のようになります。
public class RedirectToBokmaalMiddleware
{
private readonly RequestDelegate _next;
public RedirectToBokmaalMiddleware(RequestDelegate next)
{
_next = next;
}
public async Task InvokeAsync(HttpContext httpContext)
{
if (httpContext.Request.Path.StartsWithSegments("/nn"))
{
var path = httpContext.Request.Path.Value;
var newUrl = path.StartsWith("/nn") ? "/no" + path.Substring(3) : path;
httpContext.Response.Redirect(newUrl);
}
await _next(httpContext);
}
}
コンテンツ言語を使用してラベルを翻訳する
LocalizationService からのラベルやその他のテキストをコンテンツ言語 (ニーノシュク語のページではニーノシュク語) で表示するには、いくつかの変更を行う必要があります。両方の言語のラベルやその他のテキストの翻訳を XML 言語ファイルに追加します。IHtmlHelper 拡張メソッドを作成し、言語パラメータのない組み込みの拡張機能の代わりにこれを使用します。
public static class HtmlHelperExtensions
{
private static readonly LocalizationService LocalizationService = LocalizationService.Current;
public static IHtmlContent Translate(this IHtmlHelper html, string translationKey, CultureInfo contentCulture)
{
var translation = LocalizationService.GetStringByCulture(translationKey, contentCulture);
return new HtmlString(translation);
}
}
Optimizely Languages (EPiServer.Labs.LanguageManager) をインストールする
Optimizely Languages (EPiServer.Labs.LanguageManager) のインストールもお勧めします。このアドオンは、複数の言語を使用するすべての Optimizely サイトに必須です。

このように、Alloy サイトをカスタマイズして、ブークモール語とニーノシュク語を混在させることができます。Optimizely CMS の実装によっては、他の調整も必要になる場合があります。
まとめ
- ウェブサイトの言語にブークモール語とニーノシュク語を追加します。
- ブークモール語の Web アドレス プレフィックスを「no」に、ニーノシュク語の Web アドレス プレフィックスを「nn」に設定します。
- ブークモールの言語をフォールバックするようにニーノシュクを設定します。
- URL を /nn から /no にリダイレクトする
- コンテンツ言語を使用してラベルを翻訳する
- Optimizely Languages (EPiServer.Labs.LanguageManager) をインストールする
2024年9月5日
#Optimizely #CMS #でのニーノシュク語とブークモール語の取り扱い
