UNPKG

@restnfeel/agentc-starter-kit

Version:

한국어 기업용 CMS 모듈 - Task Master AI와 함께 빠르게 웹사이트를 구현할 수 있는 재사용 가능한 컴포넌트 시스템

203 lines (201 loc) 8.17 kB
// Language definitions const translations = { ko: { chatbot: "챗봇", minimize: "최소화", maximize: "최대화", close: "닫기", send: "전송", typing: "입력 중...", placeholder: "메시지를 입력하세요...", offline: "오프라인", connecting: "연결 중...", connected: "연결됨", retry: "다시 시도", welcomeTitle: "안녕하세요! 👋", welcomeMessage: "궁금한 것이 있으시면 언제든지 물어보세요. 아래 추천 질문을 클릭하거나 직접 메시지를 입력해주세요.", suggestedQuestions: "추천 질문", noSuggestedQuestions: "현재 추천 질문이 없습니다.", errorGeneric: "오류가 발생했습니다. 다시 시도해주세요.", errorNetwork: "네트워크 연결을 확인해주세요.", errorTimeout: "요청 시간이 초과되었습니다.", helpful: "도움이 되었나요?", notHelpful: "도움이 안 되었나요?", feedbackThanks: "피드백 감사합니다!", messageDelivered: "메시지가 전송되었습니다", messageFailed: "메시지 전송에 실패했습니다", openChat: "채팅창 열기", closeChat: "채팅창 닫기", sendMessage: "메시지 보내기", messageFromUser: "사용자 메시지", messageFromBot: "봇 메시지", }, en: { chatbot: "Chatbot", minimize: "Minimize", maximize: "Maximize", close: "Close", send: "Send", typing: "Typing...", placeholder: "Type your message...", offline: "Offline", connecting: "Connecting...", connected: "Connected", retry: "Retry", welcomeTitle: "Hello! 👋", welcomeMessage: "Feel free to ask me anything. You can click on the suggested questions below or type your own message.", suggestedQuestions: "Suggested Questions", noSuggestedQuestions: "No suggested questions available.", errorGeneric: "An error occurred. Please try again.", errorNetwork: "Please check your network connection.", errorTimeout: "Request timed out.", helpful: "Was this helpful?", notHelpful: "Not helpful?", feedbackThanks: "Thank you for your feedback!", messageDelivered: "Message delivered", messageFailed: "Message failed to send", openChat: "Open chat", closeChat: "Close chat", sendMessage: "Send message", messageFromUser: "User message", messageFromBot: "Bot message", }, ja: { chatbot: "チャットボット", minimize: "最小化", maximize: "最大化", close: "閉じる", send: "送信", typing: "入力中...", placeholder: "メッセージを入力してください...", offline: "オフライン", connecting: "接続中...", connected: "接続済み", retry: "再試行", welcomeTitle: "こんにちは! 👋", welcomeMessage: "何でもお気軽にお聞きください。下の推奨質問をクリックするか、直接メッセージを入力してください。", suggestedQuestions: "推奨質問", noSuggestedQuestions: "推奨質問はありません。", errorGeneric: "エラーが発生しました。もう一度お試しください。", errorNetwork: "ネットワーク接続をご確認ください。", errorTimeout: "リクエストがタイムアウトしました。", helpful: "お役に立ちましたか?", notHelpful: "お役に立ちませんでしたか?", feedbackThanks: "フィードバックありがとうございます!", messageDelivered: "メッセージが送信されました", messageFailed: "メッセージの送信に失敗しました", openChat: "チャットを開く", closeChat: "チャットを閉じる", sendMessage: "メッセージを送信", messageFromUser: "ユーザーメッセージ", messageFromBot: "ボットメッセージ", }, ar: { chatbot: "الدردشة الآلية", minimize: "تصغير", maximize: "تكبير", close: "إغلاق", send: "إرسال", typing: "جاري الكتابة...", placeholder: "اكتب رسالتك...", offline: "غير متصل", connecting: "جاري الاتصال...", connected: "متصل", retry: "إعادة المحاولة", welcomeTitle: "مرحباً! 👋", welcomeMessage: "لا تتردد في سؤالي أي شيء. يمكنك النقر على الأسئلة المقترحة أدناه أو كتابة رسالتك الخاصة.", suggestedQuestions: "أسئلة مقترحة", noSuggestedQuestions: "لا توجد أسئلة مقترحة متاحة.", errorGeneric: "حدث خطأ. يرجى المحاولة مرة أخرى.", errorNetwork: "يرجى التحقق من اتصال الشبكة.", errorTimeout: "انتهت مهلة الطلب.", helpful: "هل كان هذا مفيداً؟", notHelpful: "غير مفيد؟", feedbackThanks: "شكراً لك على ملاحظاتك!", messageDelivered: "تم تسليم الرسالة", messageFailed: "فشل في إرسال الرسالة", openChat: "فتح الدردشة", closeChat: "إغلاق الدردشة", sendMessage: "إرسال رسالة", messageFromUser: "رسالة المستخدم", messageFromBot: "رسالة البوت", }, }; const languages = { ko: { code: "ko", name: "Korean", nativeName: "한국어", direction: "ltr", flag: "🇰🇷", }, en: { code: "en", name: "English", nativeName: "English", direction: "ltr", flag: "🇺🇸", }, ja: { code: "ja", name: "Japanese", nativeName: "日本語", direction: "ltr", flag: "🇯🇵", }, ar: { code: "ar", name: "Arabic", nativeName: "العربية", direction: "rtl", flag: "🇸🇦", }, }; // Default language const DEFAULT_LANGUAGE = "en"; // Browser language detection function detectBrowserLanguage() { if (typeof window === "undefined") return DEFAULT_LANGUAGE; const browserLang = navigator.language.slice(0, 2); return Object.keys(translations).includes(browserLang) ? browserLang : DEFAULT_LANGUAGE; } // Translation helper function function t(key, lang) { var _a; return (((_a = translations[lang]) === null || _a === void 0 ? void 0 : _a[key]) || translations[DEFAULT_LANGUAGE][key] || key); } // RTL languages check function isRTL(language) { var _a; return ((_a = languages[language]) === null || _a === void 0 ? void 0 : _a.direction) === "rtl"; } // Text length adjustment for different languages function adjustTextLength(text, language) { // Different languages have different character densities const languageMultipliers = { ko: 0.8, // Korean characters are typically wider en: 1.0, // English baseline ja: 0.7, // Japanese characters can be very wide ar: 1.2, // Arabic can be more compact }; const baseMaxLength = 50; const multiplier = languageMultipliers[language] || 1.0; const adjustedMaxLength = Math.floor(baseMaxLength * multiplier); if (text.length <= adjustedMaxLength) { return { isTruncated: false, displayText: text, maxLength: adjustedMaxLength, }; } return { isTruncated: true, displayText: text.slice(0, adjustedMaxLength - 3) + "...", maxLength: adjustedMaxLength, }; } export { DEFAULT_LANGUAGE, adjustTextLength, detectBrowserLanguage, isRTL, languages, t, translations }; //# sourceMappingURL=i18n-config.js.map