تحديد الموقع والتوطين
استخدم إمكانات الحافة لتقديم محتوى وخدمات موطّنة استنادًا إلى موقع المستخدم
تحديد الموقع والتوطين درس مجاني في Edge Computing with Cloudflare Workers & Deno على CoddyKit. هذا هو الدرس 3 من أصل 4. يمكنك قراءة الدرس كاملاً أدناه مجاناً — ثم تمرن عليه مباشرة في المتصفح باستخدام محرر أكواد مدمج ومدرس ذكاء اصطناعي متاح 24/7. هذا الدرس جزء من مسار التعلم في 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/7) وفتح باقي دورة Edge Computing with Cloudflare Workers & Deno، انتقل إلى CoddyKit PRO. تتضمن دورة Edge Computing with Cloudflare Workers & Deno 4 دروس في المجموع.
ماذا ستتعلم في «تحديد الموقع والتوطين»؟
استخدم إمكانات الحافة لتقديم محتوى وخدمات موطّنة استنادًا إلى موقع المستخدم تتمرن على Edge Computing with Cloudflare Workers & Deno مع أكواد عملية تشغلها مباشرة في المتصفح، ومدرس ذكاء اصطناعي متاح 24/7 يجيب على أسئلتك أثناء عملك.
هل أحتاج إلى خبرة سابقة لأبدأ Edge Computing with Cloudflare Workers & Deno؟
لا تُشترط خبرة سابقة. Edge Computing with Cloudflare Workers & Deno على CoddyKit منظم للمبتدئين حتى المتقدمين، لذا يمكنك البدء من هنا أو من البداية والتقدم بسرعتك الخاصة. هذا هو الدرس 3 من أصل 4.
كم من الوقت يستغرق درس «تحديد الموقع والتوطين»؟
معظم دروس CoddyKit تستغرق حوالي 5–10 دقائق. كل منها موجز وتفاعلي، لذا تحرز تقدماً مستمراً وتستأنف من حيث توقفت عبر الويب والتطبيق.
هل يمكنني كتابة وتشغيل أكواد في درس Edge Computing with Cloudflare Workers & Deno هذا؟
نعم. كل درس في Edge Computing with Cloudflare Workers & Deno يتضمن محرر أكواد مدمج، لذا تكتب وتشغل أكواداً حقيقية مباشرة في متصفحك وتحصل على تعليقات فورية من الذكاء الاصطناعي — بدون إعداد محلي.
جميع الدروس في هذه الدورة
- الخدمات المصغّرة عند الحافة
- البنى المعتمدة على الأحداث
- تحديد الموقع والتوطين
- Durable Objects والتنسيق ذي الحالة