أصل الحكاية
من فترة، كنت شغال على مشروع متعدد اللغات كبير عندنا في الشركة. كنت في فريق الفرونت ايند (رياكت ونيكست)، زميلي في الفريق لم يكن عربيا لذلك كان من الطبيعي أن أكون المسؤول عن ال i18n.
في البداية فكرت ألا مشكلة في ذلك، لكن لم ألبث طويلا حتى بدأت أشعر بالضجر والتوهان
- أبحث بإستمرار داخل ملفات الترجمة (JSON files).
- أنسى إسم مفتاح الترجمة وأرتكب أخطاءًا مطبعية.
- إعادة إستخدام المفتاح الموجود كان أصعب من كتابة واحد جديد.
- التبديل بين الملفات كان يفقدني تركيزي.
شرارة الفكرة
أثناء معاناتي في التاسك ده جه في دماغي فكرة.
💡 ليه مفيش أداة تضيف لل workflow ميزات نيتف تسهل من إدارة المشاريع متعددة اللغات؟كنت محدد منهجيتي من البداية أن الميزات تكون native أو developer friendly حتى تعطى إحساس طبيعي.
الخُطة
قبل كتابة الكود حددت الأول شوية حدود.
- الستاك المدعوم هيكون رياكت ونيكست وفيو، بما إن رياكت ونيكست هو الستاك الأساسي بتاعي.
- محرروا الأكواد المدعومين هيكونوا cursor وvscode وقدام هفكر jetbrains وzed إن شاء الله.
ctrl click وال copy full key path.
عناء التسمية
تسمية المشاريع البرمجية لا تقل صعوبة عن كتابة شفرتها، في حالة "I18n Boost" كان هناك الكثير من الأسماء المحجوزة بالفعل.
اقترح بعض الأصدقاء اسم "I18n Headless"، ورغم أنه أعجبني لكنَّ كلمة "headless" برمجيا تعني في الأغلب "بدون واجهة"
أصدقاء آخرين اقترحوا اسم i18n-swift لكن استخدم اسم لغة برمجة او إطار عمل زي swift أو express ممكن يخلي المستخدمين يظنوا ان الاضافة دي خاصة باللغة دي فقط.
في النهاية استقريت على i18n-boost.
- فريد ومش مأخوذ.
- بيصف الأداء (بتboost الإنتاجية).
- سهل التذكر.
أخذ الآراء والتعديل
بعد ما بنيت النموذج الأولي، شاركته مع عدد من الأصدقاء، رأيهم كان مؤثر، أعطوني بعض الملاحظات، لكن رأيهم الإيجابي العام في الإضاقة شجعني وأعطاني بعض الثقة في نشر الإضافة.
نشر الإضافة
اخر خطوة كانت النشر، وبما ان VS Code هو أشهر محرر أكواد فكان لازم أنشرها على vs code marketplace لكن اكتشفت بعدها أن ال vscode forks الاخرين، مثل Cursor، بيعتمدوا على open vsx marketplace فنشرتها هناك أيضا.
وبس كدا، I18n Boost بقت متاحة على الإنترنت للمطورين.
بعض الدروس المستفادة
أقدر أستلهم كم درس ربنا قدرني أطلع بيهم من التجربة دي
- ابني أدوات تكون مألوفة للمستخدمين، الألفة بتخفف من الرهبة، في الـ UX بيندرج تحت الـ ده Consistency.
- جرب الأفكار بدري، حاول تطلع بـ MVP حتى لو لسه فيه أشياء مش مكتملة.
- لا تستهن بقوة الإسم الجيد.
i18n-boost بدأت كمحاولة شخصية لحل مشكلة مزعجة. وبفضل الله دلوقتي بقت أداة ممكن توفر وقت آلاف من المستخدمين اللي بيشتغلوا على مشاريع متعددة اللغات. تقدر تشوف الإضافة من هنا. لو استفدت منها تقدر تفكر في عمل review، ده بيساعد في إنتشار الأداة أكتر. عندك أي ميزة عاوز تطلبها أو مشكلة عاوز تبلغ عنها؟ فضلا ضيف issue هكون سعيد وأنا بسمعك. أخيرا، لو بتعاني مع إدارة المشاريع متعددة اللغات، اعمل boost لشغلك ⚡🌐.