پرش به محتوای اصلی
پرش به محتوای مقاله

سه نقطه کور در اتوماسیون بومی‌سازی با Claude Code

·۲۱ شهریور ۱۴۰۵۱۰ دقیقه مطالعه
بررسی‌کننده بومی‌سازی را قبل از خود بومی‌سازی ساختم. باز هم سه نقص را از دست داد.
بررسی‌کننده بومی‌سازی را قبل از خود بومی‌سازی ساختم. باز هم سه نقص را از دست داد.
اشتراک‌گذاری
واقعاً چه چیز جدید است؟

بررسی عملیِ شکستِ حفاظ‌های سخت‌گیرانه در مقابل یک عامل AI؛ این خبر نشان می‌دهد که نقص‌های AI در مقیاس انبوه، نه در ترجمه، بلکه در نقاط کور سیستمی و معماری رخ می‌دهد.

تصور کنید ۳۸۹ کلید متنی در سه زبان مختلف و تغییر در ۱۲۲ فایل را تنها در یک جلسه کاری مدیریت کنید. این دقیقاً همان اتفاقی است که در ۱۱ سپتامبر ۲۰۲۶ رخ داد؛ زمانی که یک توسعه‌دهنده برای بومی‌سازی اپلیکیشن Parlotype — یک برنامه تبدیل گفتار به متن ساخته شده با .NET 10 و Avalonia 12 — از ابزار Claude Code استفاده کرد.

بومی‌سازی (Localization) — شبیه به ترجمه یک کتاب که در آن باید دقت کرد اندازه کلمات در صفحه جدید جا شود — معمولاً زمانی شکست می‌خورد که برنامه‌نویسان ابتدا متن‌ها را استخراج و سپس بررسی می‌کنند. در این پروژه، ترتیب برعکس بود. توسعه‌دهنده ابتدا حفاظ‌ها (Guardrails) — مانند اسکریپت‌های تطبیق و تست‌های xUnit — را ساخت و سپس سراغ جابجایی ۴۵۰ کلید متنی رفت. همان‌طور که در تحلیل‌های قبلی ما درباره‌ی امنیت مدل‌های بازمتن اشاره کردیم، اعتماد کورکورانه به خروجی مدل‌های زبانی ریسک بالایی دارد؛ به همین دلیل در اینجا از عامل (Agent) هوش مصنوعی به عنوان یک موتور با توان عملیاتی بالا اما مستعد «انحراف» استفاده شد. این رویکرد با روندی همسو است که در آن سهم مهارت‌های غیرانگلیسی در عامل‌های هوش مصنوعی برای مدیریت بهتر زبان‌های متنوع در حال رشد است.

طبق مستندات این پروژه، معماری حفاظ‌ها شامل لایه‌های زیر بود:

  • اسکریپت‌های تطبیق: یک اسکریپت PowerShell برای اطمینان از یکسان بودن کلیدها و جای‌گذارهای {0} در تمام زبان‌ها.
  • درگاه‌های انتشار: استفاده از xUnit برای مسدود کردن هر بیلد (Build) که دارای کلیدهای گم‌شده باشد.
  • قلاب‌های عامل: تنظیماتی در .claude/settings.json که باعث می‌شد عامل بلافاصله پس از هر تغییر، اسکریپت تطبیق را اجرا کند.
  • فایل‌های مهارت: یک سند راهنما در .claude/skills/localization/SKILL.md برای آموزش مدل درباره نحوه نام‌گذاری کلیدها.
  • ردیابی خط پایه: سیستمی برای اطمینان از اینکه تعداد متون سخت‌افزاری (Hardcoded) در فایل‌های .axaml هرگز افزایش نیابد.

بررسی‌کننده بومی‌سازی را قبل از خود بومی‌سازی ساختم. باز هم سه نقص را از دست داد.

یکی از چالش‌های فنی، پیاده‌سازی تغییر زبان در لحظه (Live-switching) در Avalonia 12 بود. توسعه‌دهنده برای حل تضاد بین Bindings کامپایل‌شده و نیاز به تغییر پویا، کلاس TrExtension را طراحی کرد. این معماری از Localizer.Entry(key) استفاده می‌کند که هر کلید را به یک شیء LocalizedString متصل می‌کند. به این ترتیب، وقتی زبان تغییر می‌کند، تنها یک اعلان (Notification) ارسال می‌شود، نه یک پخش سراسری در کل برنامه.

در لایه مارک‌آپ، پیاده‌سازی ساده است: <TextBlock Text="{loc:Tr Settings_Theme_Title}" />. دو تصمیم کلیدی در اینجا گرفته شد: جداسازی فرهنگ رابط کاربری (UI Culture) از فرهنگ سیستمی برای حفظ فرمت تاریخ و اعداد کاربر، و تولید کمکی‌های تایپ‌شده (Typed Helpers) در Strings.cs برای جلوگیری از خطاهای زمان اجرا.

بررسی‌کننده بومی‌سازی را قبل از خود بومی‌سازی ساختم؛ با این حال، سه نقص را از دست داد.

از نظر معماری، Parlotype.Core بدون وابستگی باقی ماند تا جهت وابستگی‌ها معکوس نشود. اما چون Core باید جملاتی مثل خطاهای ارائه‌دهنده ابری را بسازد، از یک الگوی تفکیک استفاده شد: Core دلیل خطا را به صورت داده (Enum) تعریف می‌کند و لایه Desktop کلمات واقعی را انتخاب می‌کند. برای جلوگیری از نقاط کور در این بخش، تست‌هایی نوشته شد که بررسی می‌کرد خروجی نهایی در زبان روسی حتماً شامل حروف سیریلیک باشد.

با وجود این همه سخت‌گیری، سه نقص سیستمی به محیط تولید راه یافتند:

۱. کوری‌سنج‌های نابینا: اسکنر متون سخت‌افزاری با استفاده از Regex کار می‌کرد اما برخی ویژگی‌ها مثل OnContent را نادیده می‌گرفت. همچنین متونی که بین تگ‌ها (Element Content) بودند، هرگز بررسی نشدند. در نهایت، نویسه‌های XML مثل ✕ به دلیل داشتن حرف 'x' به اشتباه به عنوان متن قابل ترجمه شمرده شدند.

۲. ترکیبات قدیمی در C#: در ۶ نقطه از برنامه، متون در View Modelها با کد C# ترکیب شده بودند. این مقادیر درست محاسبه می‌شدند اما چیزی به View دستور نمی‌داد که آن‌ها را دوباره بخواند. برای حل این مشکل، نیاز بود متد OnCultureChanged بازنویسی شود یا یک Enum برای وضعیت‌ها (مانند Ready یا Recording) تعریف گردد تا متن بر اساس وضعیت فعلی بازسازی شود.

بررسی‌کننده بومی‌سازی را قبل از خود بومی‌سازی ساختم. باز هم سه نقص را از دست داد.

۳. غفلت مستند شده: تولتیپ دکمه ضبط («Hold Right Ctrl to talk») انگلیسی باقی ماند. این مورد حتی در مستندات معماری به عنوان «به عمد انگلیسی» ثبت شده بود و تنها از طریق گزارش یک کاربر و یک اسکرین‌شات شناسایی شد.

این تجربه ثابت می‌کند که عامل‌های هوش مصنوعی توان عملیاتی خیره‌کننده‌ای دارند؛ آن‌ها برنامه، ADR، ژنراتور، تست‌ها و حتی اصلاحات را نوشتند. برای بهینه‌سازی این فرآیند و کاهش هزینه‌های عملیاتی، برخی توسعه‌دهندگان از لایه‌های پیش‌پردازش محلی برای کاهش توکن‌های Claude Code استفاده می‌کنند تا کارایی سیستم افزایش یابد. اما نکته تکان‌دهنده این است که عامل هرگز متوجه «اشتباه بودن» برنامه نشد. تمام نقص‌ها توسط انسان و از طریق مشاهده اسکرین‌شات‌ها یا بررسی کد شناسایی شدند.

گام بعدی شما

  • هنگام استفاده از عامل‌ها برای مهاجرت‌های انبوه کد، هر حفاظ (Guardrail) را با ایجاد خطای عمدی تست کنید تا از «سبز بودن کاذب» تست‌ها مطمئن شوید.
  • تایید بصری (Visual Verification) را اجباری کنید؛ تست‌های سبز تنها یک فرضیه هستند، اما خروجی UI حقیقت است.
  • به جای دستورات کلی مثل «متن‌ها را استخراج کن»، معیارهای پذیرش دقیق بدهید: «پنجره باید کاملاً روسی باشد و با مشاهده بصری تایید شود».

اما داستان سخت‌افزاری این تحول حتی شگفت‌انگیزتر است — به تحلیل ما درباره‌ی تراشه‌های Blackwell مراجعه کنید.

چرا این موضوع مهم است؟

این مورد نشان می‌دهد که حتی پیشرفته‌ترین حفاظ‌های نرم‌افزاری نمی‌توانند جایگزین ارزیابی انسانی در رابط کاربری شوند. تخصص در طراحی تست‌های لبه‌ای (Edge Case) اکنون برای مدیریت عامل‌های AI حیاتی‌تر از توانایی کدنویسی است.

تأثیر برای ایران

برای توسعه‌دهندگان ایرانی که از ابزارهای Agentic برای تسریع پروژه‌های صادراتی و بومی‌سازی استفاده می‌کنند، این یک هشدار است: اتکای مطلق به تست‌های خودکار AI می‌تواند منجر به انتشار محصولاتی با نقص‌های بصری شود.

·نگاه ما
تحریریه دات‌هوش

اتکای بیش از حد به تست‌های خودکار در عصر عامل‌های هوش مصنوعی، ریسک ایجاد «توهم‌های سیستمی» را افزایش می‌دهد؛ جایی که مدل تمام تست‌های تعریف‌شده را پاس می‌کند اما محصول نهایی همچنان غلط است. این تجربه نشان می‌دهد که نقش توسعه‌دهنده از «نویسنده کد» به «طراح سیستم‌های نظارتی» و «تاییدکننده بصری» تغییر یافته است. در واقع، هرچه توان عملیاتی AI بیشتر می‌شود، ارزشِ نگاه انسانی به خروجی نهایی (End-to-End) افزایش می‌یابد.

منابع

این گزارش با خط‌لولهٔ خودکار دات‌هوش از منابع معتبر جهانی تدوین و زیر نظر تحریریه منتشر شده است. روش کار ما

گفتگو

پنج‌شنبه‌های هوش‌محور

بسته‌ی هفتگی دات‌هوش

۵ خبر، ۲ ابزار، ۱ پرامپت در هر شماره. به‌زودی راه‌اندازی می‌شود — هر پنج‌شنبه صبح.

خبر کلیدی
ابزار کاربردی
پرامپت حرفه‌ای
تحلیل پژوهش
به‌زودی
زاویه‌ی ایرانی
به‌زودی
تمرین این هفته
به‌زودی

راهنماهای دات‌هوش

راهنماهای کاربردیِ دات‌هوش برای کار با هوش مصنوعی — از همین‌جا شروع کنید:

دات‌هوش

راهنمای فارسی هوش مصنوعی — با نگاه به ایران

اخبار روزانه، معرفی ابزارها و مدل‌ها، و آموزشِ کار با هوش مصنوعی؛ همیشه با این پرسش که از ایران چه چیزی کار می‌کند و چه چیزی نه.