ジオロケーションとローカライゼーション
エッジの機能を活用し、ユーザーの位置情報に基づいてローカライズされたコンテンツやサービスを提供します
「ジオロケーションとローカライゼーション」はCoddyKit上の無料Edge Computing with Cloudflare Workers & Denoレッスンです。 これはレッスン3/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはEdge Computing with Cloudflare Workers & Deno学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Edge Computing with Cloudflare Workers & Denoコースには全4レッスンが含まれています。
このレッスンの一部はまだ翻訳されておらず、英語で表示されています。
Edge Geolocation & Localization
Ever wonder how websites seem to know your location or prefer your local language? That's often thanks to geolocation and localization, especially when powered by the edge!
Geolocation is finding a user's physical location. Localization is adapting content (like language, currency, or date formats) based on that location.
The edge is perfect for this! By processing requests closer to the user, we can quickly determine location and deliver tailored experiences with minimal delay.
How Edge Knows Your Location
When you connect to a website, your device sends an IP address. Edge networks like Cloudflare use this IP to perform a quick lookup, determining your approximate geographic location.
This information is then made available to your code running on the edge. It's fast, automatic, and doesn't rely on browser-based GPS, which often requires user permission.
Access Geolocation Data
Cloudflare Workers provide geolocation data through the request.cf object. This object is automatically populated for every incoming request hitting the edge.
It contains useful properties like country code, city, region, and even timezone, making it incredibly easy to build location-aware applications without extra APIs.
Demo: Simple Country Detection
Let's write a simple Cloudflare Worker that detects the user's country and responds with a greeting. This uses the request.cf.country property.
Try running this example to see your country code!
export default {
async fetch(request) {
const country = request.cf.country; // e.g., "US", "DE", "JP"
return new Response(`Hello from ${country || 'an unknown location'}!`);
}
};Detailed Location Info
The request.cf object offers more than just the country code. You can access more granular details for deeper localization:
cf.city: User's city (e.g., "San Francisco")cf.region: User's region/state (e.g., "CA")cf.timezone: User's timezone (e.g., "America/Los_Angeles")cf.latitude,cf.longitude: Approximate coordinates
Use these to create highly personalized experiences.
Demo: Personalized Greeting
Let's enhance our Worker to provide a more personalized greeting using city and country information from the request.cf object.
This demonstrates how easily you can use multiple geolocation data points.
export default {
async fetch(request) {
const { city, country } = request.cf;
if (city && country) {
return new Response(`Welcome, traveler from ${city}, ${country}!`);
} else if (country) {
return new Response(`Welcome, traveler from ${country}!`);
} else {
return new Response('Welcome, traveler!');
}
}
};Localization: Language & Content
Beyond simple greetings, you can use geolocation data to serve different versions of your content. This is key for true localization.
- Language: Determine the user's preferred language (e.g., from
Accept-Languageheader orcf.country) and serve translated text. - Currency: Display prices in the local currency based on the user's country.
- Content Variants: Show different promotions or product availability based on regional restrictions.
Demo: Dynamic Language
Here's an example of how a Worker can provide a dynamic welcome message based on the user's country. For simplicity, we'll map a few countries to specific languages.
In a real application, you'd integrate with a more robust i18n (internationalization) library.
export default {
async fetch(request) {
const country = request.cf.country;
let message;
switch (country) {
case 'US':
message = 'Hello!';
break;
case 'FR':
message = 'Bonjour!';
break;
case 'DE':
message = 'Guten Tag!';
break;
default:
message = 'Welcome!';
}
return new Response(message);
}
};Best Practices for Localization
To make your edge localization robust and user-friendly, consider these tips:
- Fallback Content: Always have a default language or content version for unknown locations.
- User Overrides: Allow users to manually select their preferred language/location, overriding the auto-detected setting.
- Caching: Cache localized content variants effectively to maximize performance benefits.
- Privacy: Be mindful of privacy regulations (like GDPR) when using location data.
Quick Check: Edge Localization
Edge computing significantly enhances geolocation and localization. Which of the following statements accurately describe benefits or methods of using edge capabilities for localization?
Recap & Next Steps
In this lesson, we explored how geolocation and localization are powerful capabilities at the edge.
- You learned how edge networks provide location data automatically.
- We saw how to access this data in Cloudflare Workers using the
request.cfobject. - You built Workers that deliver personalized and localized content based on user location.
Leveraging the edge for these features greatly improves user experience and application performance. Keep experimenting with these concepts to build truly global applications!
よくある質問
「ジオロケーションとローカライゼーション」レッスンは無料ですか?
はい。「ジオロケーションとローカライゼーション」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Edge Computing with Cloudflare Workers & Denoコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Edge Computing with Cloudflare Workers & Denoコースには全4レッスンが含まれています。
「ジオロケーションとローカライゼーション」で何を学びますか?
エッジの機能を活用し、ユーザーの位置情報に基づいてローカライズされたコンテンツやサービスを提供します ブラウザで直接実行するハンズオンコードでEdge Computing with Cloudflare Workers & Denoを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Edge Computing with Cloudflare Workers & Denoを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのEdge Computing with Cloudflare Workers & Denoは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン3/4です。
「ジオロケーションとローカライゼーション」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このEdge Computing with Cloudflare Workers & Denoレッスンでコードを書いて実行できますか?
はい。すべてのEdge Computing with Cloudflare Workers & Denoレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- エッジでのマイクロサービス
- イベント駆動アーキテクチャ
- ジオロケーションとローカライゼーション
- Durable Objectsとステートフルな協調処理