initial commit
This commit is contained in:
@@ -0,0 +1,195 @@
|
||||
const I18N = {
|
||||
ko: {
|
||||
appTitle: '스타트업 지원 심사 판단 실험',
|
||||
langBtn: 'EN',
|
||||
|
||||
stepLabels: ['안내', '직관 판단', 'AHP 비교', '결과', '사후 설문'],
|
||||
|
||||
// Step 1
|
||||
step1Title: '스타트업 지원 심사 판단 실험',
|
||||
step1Intro: '당신은 스타트업 지원 프로그램의 심사위원입니다. 이 실험은 두 가지 판단 방식 — 인간의 직관과 AI 기반 의사결정 모델(AHP) — 을 비교 분석합니다. 15개의 스타트업 사례를 보고 지원금 지급 가능성을 평가한 뒤, 본인만의 평가 기준 가중치를 설정하게 됩니다.',
|
||||
step1Notices: [
|
||||
'정답은 없습니다. 느낌과 직관대로 판단해 주세요.',
|
||||
'총 소요 시간은 약 5~6분입니다.',
|
||||
'중간에 페이지를 나가면 데이터가 저장되지 않습니다.',
|
||||
],
|
||||
step1Q1: '국가',
|
||||
step1Q1placeholder: '국가를 선택하세요',
|
||||
step1Q2: '나이',
|
||||
step1Q2placeholder: '나이를 입력하세요',
|
||||
step1Q3: '성별',
|
||||
step1Q3opts: ['남성', '여성', '기타'],
|
||||
startBtn: '실험 시작',
|
||||
|
||||
// Step 2
|
||||
step2Instruction: '당신은 스타트업 지원 프로그램의 심사위원입니다. 아래 팀의 정보를 보고 지원금 지급 가능성을 직관적으로 평가하세요. 계산하지 말고 느낌대로 판단하세요.',
|
||||
varNames: {
|
||||
'안정성': '안정성',
|
||||
'수익_가능성': '수익 가능성',
|
||||
'자금_효율성': '자금 효율성',
|
||||
'사업_계획_완성도': '사업 계획 완성도',
|
||||
'사회적_가치': '사회적 가치',
|
||||
},
|
||||
judgmentLabel: '이 팀의 지원금 지급 가능성을 평가하세요',
|
||||
judgmentScale: ['매우\n탈락', '탈락', '보통', '선발', '매우\n선발'],
|
||||
btnNext: '다음',
|
||||
|
||||
// Step 3
|
||||
step3Title: 'AHP 쌍대비교',
|
||||
step3Instruction: '5개의 평가 기준 중 어느 것이 더 중요한지 비교해주세요. 왼쪽이 더 중요하면 슬라이더를 왼쪽으로, 오른쪽이 더 중요하면 오른쪽으로 움직이세요.',
|
||||
ahpEqual: '두 기준이 동등하게 중요합니다',
|
||||
ahpLeftMore: (crit, level) => `${crit}이(가) ${level} 더 중요합니다`,
|
||||
ahpRightMore: (crit, level) => `${crit}이(가) ${level} 더 중요합니다`,
|
||||
ahpLevels: { 3: '약간', 5: '꽤', 7: '매우', 9: '극히' },
|
||||
crWarning: '판단에 약간의 모순이 감지되었습니다(CR > 0.10). 다시 입력하시겠습니까?',
|
||||
btnRedo: '다시 입력',
|
||||
btnContinue: '그대로 진행',
|
||||
|
||||
// Step 4
|
||||
step4Title: '결과 비교',
|
||||
weightsTitle: '나의 판단 기준 (AHP 가중치)',
|
||||
tableTitle: '사례별 모델 vs 직관 비교',
|
||||
colTeam: '팀',
|
||||
colModelScore: '모델 점수',
|
||||
colModelJudge: '모델 판단',
|
||||
colIntuition: '직관 (1-5)',
|
||||
colMatch: '일치',
|
||||
colYes: '✓',
|
||||
colNo: '✗',
|
||||
colNeutral: '△',
|
||||
totalMismatch: (n, t) => `총 불일치: ${n} / ${t}건 (보통 제외)`,
|
||||
statsTitle: '핵심 통계',
|
||||
statTotal: '전체 불일치율',
|
||||
statBaseline: '베이스라인\n불일치율',
|
||||
statSpike: '스파이크 사례\n불일치율',
|
||||
statConflict: '충돌 사례\n불일치율',
|
||||
statCR: 'CR (일관성 비율)',
|
||||
select: '선발',
|
||||
reject: '탈락',
|
||||
neutral: '보통',
|
||||
btnGoSurvey: '사후 설문으로 이동',
|
||||
|
||||
// Step 5
|
||||
step5Title: '사후 설문',
|
||||
step5Desc: '마지막으로 간단한 설문에 답해주세요.',
|
||||
likertQ: [
|
||||
'모델의 판단 결과를 보고 놀라웠다.',
|
||||
'내 직관보다 모델의 판단이 더 합리적이라고 생각한다.',
|
||||
'이 선발 결정을 모델에게 맡겨도 괜찮다고 생각한다.',
|
||||
'이번 판단은 온전히 내 의지로 한 것이라고 느낀다.',
|
||||
],
|
||||
likertScale: ['전혀\n아니다', '아니다', '보통', '그렇다', '매우\n그렇다'],
|
||||
openQ: '모델 판단과 직관이 달랐을 때 어떤 생각이 들었나요? (선택)',
|
||||
openPh: '자유롭게 작성해 주세요...',
|
||||
btnSubmit: '제출하기',
|
||||
|
||||
// Complete
|
||||
completeTitle: '참여해 주셔서 감사합니다!',
|
||||
completeDesc: '실험이 완료되었습니다.\n소중한 시간을 내어 참여해 주셔서 진심으로 감사드립니다.\n응답 데이터는 안전하게 저장되었습니다.',
|
||||
|
||||
alertFillAll: '모든 항목을 입력해 주세요.',
|
||||
alertSelectJudgment: '먼저 판단을 선택해 주세요.',
|
||||
leaveWarning: '실험이 완료되지 않았습니다. 나가시겠습니까?',
|
||||
},
|
||||
|
||||
en: {
|
||||
appTitle: 'Startup Funding Evaluation Experiment',
|
||||
langBtn: '한국어',
|
||||
|
||||
stepLabels: ['Intro', 'Intuition', 'AHP', 'Results', 'Survey'],
|
||||
|
||||
step1Title: 'Startup Funding Evaluation Experiment',
|
||||
step1Intro: 'You are a judge in a startup support program. This experiment compares two decision-making approaches — human intuition and an AI-based model (AHP). You will evaluate 15 startup cases and then set your own weighting criteria.',
|
||||
step1Notices: [
|
||||
'There are no right or wrong answers. Judge by your gut feeling.',
|
||||
'The experiment takes approximately 5–6 minutes.',
|
||||
'Leaving the page mid-experiment will result in lost data.',
|
||||
],
|
||||
step1Q1: 'Country',
|
||||
step1Q1placeholder: 'Select your country',
|
||||
step1Q2: 'Age',
|
||||
step1Q2placeholder: 'Enter your age',
|
||||
step1Q3: 'Gender',
|
||||
step1Q3opts: ['Male', 'Female', 'Other'],
|
||||
startBtn: 'Start Experiment',
|
||||
|
||||
step2Instruction: 'You are a judge in a startup support program. Based on the team\'s information below, intuitively evaluate their funding potential.',
|
||||
varNames: {
|
||||
'안정성': 'Stability',
|
||||
'수익_가능성': 'Revenue Potential',
|
||||
'자금_효율성': 'Capital Efficiency',
|
||||
'사업_계획_완성도': 'Business Plan Quality',
|
||||
'사회적_가치': 'Social Value',
|
||||
},
|
||||
judgmentLabel: 'Evaluate this team\'s funding potential',
|
||||
judgmentScale: ['Strongly\nReject', 'Reject', 'Neutral', 'Fund', 'Strongly\nFund'],
|
||||
btnNext: 'Next',
|
||||
|
||||
step3Title: 'AHP Pairwise Comparison',
|
||||
step3Instruction: 'Compare which of the 5 criteria matters more. Move the slider left if the left criterion is more important, right if the right one is.',
|
||||
ahpEqual: 'Both criteria are equally important',
|
||||
ahpLeftMore: (crit, level) => `${crit} is ${level} more important`,
|
||||
ahpRightMore: (crit, level) => `${crit} is ${level} more important`,
|
||||
ahpLevels: { 3: 'somewhat', 5: 'considerably', 7: 'much', 9: 'extremely' },
|
||||
crWarning: 'Some inconsistency detected (CR > 0.10). Would you like to redo the comparison?',
|
||||
btnRedo: 'Redo',
|
||||
btnContinue: 'Continue anyway',
|
||||
|
||||
step4Title: 'Results Comparison',
|
||||
weightsTitle: 'Your Judgment Criteria (AHP Weights)',
|
||||
tableTitle: 'Model vs. Intuition per Case',
|
||||
colTeam: 'Team',
|
||||
colModelScore: 'Model Score',
|
||||
colModelJudge: 'Model',
|
||||
colIntuition: 'Intuition (1-5)',
|
||||
colMatch: 'Match',
|
||||
colYes: '✓',
|
||||
colNo: '✗',
|
||||
colNeutral: '△',
|
||||
totalMismatch: (n, tot) => `Total mismatches: ${n} / ${tot} (neutral excluded)`,
|
||||
statsTitle: 'Key Statistics',
|
||||
statTotal: 'Overall Mismatch Rate',
|
||||
statBaseline: 'Baseline\nMismatch Rate',
|
||||
statSpike: 'Spike Case\nMismatch Rate',
|
||||
statConflict: 'Conflict Case\nMismatch Rate',
|
||||
statCR: 'CR (Consistency Ratio)',
|
||||
select: 'Fund',
|
||||
reject: 'Reject',
|
||||
neutral: 'Neutral',
|
||||
btnGoSurvey: 'Go to Post-Survey',
|
||||
|
||||
step5Title: 'Post-Survey',
|
||||
step5Desc: 'Please answer a few final questions.',
|
||||
likertQ: [
|
||||
'I was surprised by the model\'s judgment.',
|
||||
'I think the model\'s judgment is more rational than my intuition.',
|
||||
'I would be comfortable letting the model make these selection decisions.',
|
||||
'I feel the decisions I made were entirely my own.',
|
||||
],
|
||||
likertScale: ['Strongly\nDisagree', 'Disagree', 'Neutral', 'Agree', 'Strongly\nAgree'],
|
||||
openQ: 'What did you think when your intuition differed from the model? (Optional)',
|
||||
openPh: 'Write freely...',
|
||||
btnSubmit: 'Submit',
|
||||
|
||||
completeTitle: 'Thank you for participating!',
|
||||
completeDesc: 'The experiment is complete.\nThank you sincerely for your time and participation.\nYour responses have been saved securely.',
|
||||
|
||||
alertFillAll: 'Please fill in all fields.',
|
||||
alertSelectJudgment: 'Please make a judgment first.',
|
||||
leaveWarning: 'The experiment is not complete. Are you sure you want to leave?',
|
||||
},
|
||||
};
|
||||
|
||||
let currentLang = 'en';
|
||||
|
||||
function t(key, ...args) {
|
||||
const val = I18N[currentLang][key];
|
||||
if (typeof val === 'function') return val(...args);
|
||||
return val ?? key;
|
||||
}
|
||||
|
||||
function switchLang() {
|
||||
currentLang = currentLang === 'ko' ? 'en' : 'ko';
|
||||
document.documentElement.lang = currentLang;
|
||||
if (typeof renderApp === 'function') renderApp();
|
||||
}
|
||||
Reference in New Issue
Block a user