💻 آخرین فرصت یادگیری برنامه‌نویسی با آفر ویژه قبل از افزایش قیمت در ۱۵ آذرماه (🎁 به همراه یک هدیه ارزشمند )
۰ ثانیه
۰ دقیقه
۰ ساعت
۳ Saman
مثال سایت‌های چندزبانه
جامعه مهندسی نرم افزار ایجاد شده در ۱۴ بهمن ۱۴۰۲

سلام وقتتون بخیر
یک مثال جالب از همین الگو proxy خوندم که گفتم اینجا هم بزارم

 

dictionary = {
    'Post': {'fa': 'پست'},
    'Draft': {'fa': 'پیش‌نویس'},
}
class Settings:
    language = 'en'
class Button:
    def __init__(self, text):
        self.text = text
    def show(self):
        print(self.text)
class T:
    def __init__(self, text):
        self.text = text
    def __str__(self):
        return dictionary.get(self.text, {}).get(Settings.language, self.text) 
class Twitter:
    def input(self):
        buttons = [
            Button(T("Post")),
            Button(T("Draft")),
        ]
        self.show_buttons(buttons)
    def show_buttons(self, buttons):
        for b in buttons:
            b.show()

کلاس Settings تنظیمات زبان فعلی را نگه می‌دارد، در حالی که کلاس Button مسئول نمایش متن دکمه است. کلاس Twitter یک رابط کاربری شبیه‌سازی شده با دکمه‌هایی با متنی است که ممکن است نیاز به ترجمه داشته باشد. کلاس T به عنوان یک Proxy برای هر متنی که کاربر خواهد دید عمل می‌کند؛ این کلاس متن را می‌گیرد و نسخه ترجمه شده آن را بر اساس تنظیمات زبان فعلی در کلاس Settings بر می‌گرداند. ترجمه از یک dictionary از پیش تعریف شده انتخاب می‌شود. وقتی کلاس Button متد show را فراخوانی می‌کند، در نهایت از طریق کلاس T متن ترجمه شده را نمایش می‌دهد

Saman ۱۴ بهمن ۱۴۰۲، ۰۷:۴۱

سلام،

ممنون از مشارکت شما.

محسن موحد ۱۴ بهمن ۱۴۰۲، ۱۵:۱۸

نبابااااااا راس میگییییی؟

جدی می‌فرمایییدددددد؟

پس اون این چیزا رو از کجاش در آورده بود؟

echo 'NABABA; ZANBABA';
عباس قلبی هکر زاده ۱۴ اسفند ۱۴۰۲، ۱۵:۳۲