umami/scripts/translate-10-sinhala.cjs
Mike Cao e1ee5eba27
Some checks are pending
Node.js CI / build (push) Waiting to run
Translate all 51 locale files, reducing untranslated keys from 6,017 to 862.
12 batch translation scripts covering all language families: East Asian, Romance,
Germanic, Nordic, Slavic, Other European, South/Southeast Asian, Tamil, Sinhala,
Urdu, and Burmese. Remaining untranslated keys are intentional loanwords (URL, UTM,
SMS, etc.) and en-GB which is intentionally identical to en-US.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 13:04:45 -08:00

358 lines
20 KiB
JavaScript

const fs = require('fs');
const path = require('path');
const dir = path.join(__dirname, '..', 'public', 'intl', 'messages');
const enUS = JSON.parse(fs.readFileSync(path.join(dir, 'en-US.json'), 'utf8'));
const translations = {
'si-LK': {
label: {
// A
'access-code': 'ප්‍රවේශ කේතය',
'account': 'ගිණුම',
'action': 'ක්‍රියාව',
'actions': 'ක්‍රියා',
'add': 'එකතු කරන්න',
'add-board': 'පුවරුව එකතු කරන්න',
'add-description': 'විස්තරය එකතු කරන්න',
'add-link': 'සබැඳිය එකතු කරන්න',
'add-member': 'සාමාජිකයා එකතු කරන්න',
'add-pixel': 'පික්සලය එකතු කරන්න',
'add-step': 'පියවර එකතු කරන්න',
'affiliate': 'අනුබද්ධ',
'after': 'පසුව',
'analysis': 'විශ්ලේෂණය',
'analytics': 'විශ්ලේෂණ',
'application': 'යෙදුම',
'apply': 'යොදන්න',
'attribution': 'ආරෝපණය',
'attribution-description': 'පරිශීලකයින් ඔබේ අලෙවිකරණය සමඟ කටයුතු කරන ආකාරය සහ පරිවර්තන මෙහෙයවන දේ බලන්න.',
'audience': 'ප්‍රේක්ෂකයින්',
'average': 'සාමාන්‍ය',
'before': 'පෙර',
'boards': 'පුවරු',
'bounce-rate': 'ප්‍රතිචිප්ත අනුපාතය',
'breakdown': 'බිඳීම',
'browser': 'බ්‍රවුසරය',
'browsers': 'බ්‍රවුසර',
'campaign': 'ව්‍යාපාරය',
'campaigns': 'ව්‍යාපාර',
'channel': 'නාලිකාව',
'channels': 'නාලිකා',
'chart': 'ප්‍රස්ථාරය',
'cities': 'නගර',
'city': 'නගරය',
'clear-all': 'සියල්ල හිස් කරන්න',
'cohort': 'සමූහය',
'cohorts': 'සමූහ',
'compare': 'සංසන්දනය',
'compare-dates': 'දින සංසන්දනය',
'confirm': 'තහවුරු කරන්න',
'contains': 'අඩංගු වේ',
'content': 'අන්තර්ගතය',
'continue': 'ඉදිරියට',
'conversion': 'පරිවර්තනය',
'conversion-rate': 'පරිවර්තන අනුපාතය',
'conversion-step': 'පරිවර්තන පියවර',
'count': 'ගණන',
'countries': 'රටවල්',
'country': 'රට',
'create': 'සාදන්න',
'create-report': 'වාර්තාව සාදන්න',
'create-team': 'කණ්ඩායම සාදන්න',
'create-user': 'පරිශීලකයා සාදන්න',
'created': 'සාදන ලදි',
'created-by': 'සාදන ලද්දේ',
'criteria': 'නිර්ණායක',
'currency': 'මුදල් ඒකකය',
'current': 'වත්මන්',
'data': 'දත්ත',
'date': 'දිනය',
'day': 'දිනය',
'delete-report': 'වාර්තාව මකන්න',
'delete-team': 'කණ්ඩායම මකන්න',
'delete-user': 'පරිශීලකයා මකන්න',
'description': 'විස්තරය',
'desktop': 'ඩෙස්ක්ටොප්',
'destination-url': 'ගමනාන්ත URL',
'details': 'විස්තර',
'device': 'උපාංගය',
'devices': 'උපාංග',
'direct': 'සෘජු',
'distinct-id': 'විශේෂිත ID',
'documentation': 'ලේඛනගත කිරීම',
'does-not-contain': 'අඩංගු නොවේ',
'does-not-include': 'ඇතුළත් නොවේ',
'doest-not-exist': 'පවතින්නේ නැත',
'download': 'බාගන්න',
'dropoff': 'අතහැර යෑම',
'edit-dashboard': 'උපකරණ පුවරුව සංස්කරණය',
'edit-member': 'සාමාජිකයා සංස්කරණය',
'email': 'විද්‍යුත් තැපෑල',
'end-step': 'අවසාන පියවර',
'environment': 'පරිසරය',
'event': 'සිදුවීම',
'event-name': 'සිදුවීම් නාමය',
'events': 'සිදුවීම්',
'exclude-bounce': 'ප්‍රතිචිප්ත බැහැර කරන්න',
'exists': 'පවතී',
'false': 'අසත්‍ය',
'field': 'ක්ෂේත්‍රය',
'fields': 'ක්ෂේත්‍ර',
'filter': 'පෙරහන',
'filter-combined': 'ඒකාබද්ධ',
'filter-raw': 'අමු',
'filters': 'පෙරහන්',
'first-click': 'පළමු ක්ලික්',
'first-seen': 'මුලින් දුටු',
'funnel': 'පුනීලය',
'funnel-description': 'පරිශීලකයින්ගේ පරිවර්තන සහ අතහැර යෑමේ අනුපාතය තේරුම් ගන්න.',
'funnels': 'පුනීල',
'goal': 'ඉලක්කය',
'goals': 'ඉලක්ක',
'goals-description': 'පිටු නැරඹීම් සහ සිදුවීම් සඳහා ඔබේ ඉලක්ක නිරීක්ෂණය කරන්න.',
'greater-than': 'වඩා විශාලයි',
'greater-than-equals': 'වඩා විශාල හෝ සමානයි',
'grouped': 'කාණ්ඩගත',
'growth': 'වර්ධනය',
'hostname': 'ධාරක නාමය',
'hour': 'පැය',
'includes': 'ඇතුළත් වේ',
'insight': 'අවබෝධය',
'insights': 'අවබෝධ',
'insights-description': 'ඛණ්ඩ සහ පෙරහන් භාවිතා කර ඔබේ දත්ත ගැඹුරින් බලන්න.',
'invalid-url': 'වලංගු නොවන URL',
'is': 'වේ',
'is-false': 'අසත්‍යයි',
'is-not': 'නොවේ',
'is-not-set': 'සකසා නැත',
'is-set': 'සකසා ඇත',
'is-true': 'සත්‍යයි',
'join': 'සම්බන්ධ වන්න',
'join-team': 'කණ්ඩායමට සම්බන්ධ වන්න',
'journey': 'ගමන',
'journey-description': 'පරිශීලකයින් ඔබේ වෙබ් අඩවිය හරහා සැරිසරන ආකාරය තේරුම් ගන්න.',
'journeys': 'ගමන්',
'languages': 'භාෂා',
'laptop': 'ලැප්ටොප්',
'last-click': 'අවසාන ක්ලික්',
'last-months': 'අන්තිම {x} මාස',
'last-seen': 'අවසන් දුටු',
'leave': 'ඉවත් වන්න',
'leave-team': 'කණ්ඩායමෙන් ඉවත් වන්න',
'less-than': 'වඩා කුඩායි',
'less-than-equals': 'වඩා කුඩා හෝ සමානයි',
'link': 'සබැඳිය',
'links': 'සබැඳි',
'location': 'ස්ථානය',
'manage': 'කළමනාකරණය',
'manager': 'කළමනාකරු',
'max': 'උපරිම',
'medium': 'මාධ්‍යය',
'member': 'සාමාජිකයා',
'members': 'සාමාජිකයින්',
'min': 'අවම',
'minute': 'මිනිත්තුව',
'mobile': 'ජංගම',
'model': 'ආදර්ශය',
'month': 'මාසය',
'my-account': 'මගේ ගිණුම',
'my-websites': 'මගේ වෙබ් අඩවි',
'number-of-records': '{x} {x, plural, one {වාර්තාව} other {වාර්තා}}',
'ok': 'OK',
'online': 'සබැඳි',
'organic-search': 'කාබනික සෙවීම',
'organic-shopping': 'කාබනික සාප්පු සවාරි',
'organic-social': 'කාබනික සමාජ',
'organic-video': 'කාබනික වීඩියෝ',
'os': 'OS',
'other': 'වෙනත්',
'overview': 'දළ විసුරුම',
'page': 'පිටුව',
'page-of': 'පිටුව {current} / {total}',
'page-views': 'පිටු නැරඹීම්',
'pageTitle': 'පිටු මාතෘකාව',
'pages': 'පිටු',
'paid-ads': 'ගෙවූ දැන්වීම්',
'paid-search': 'ගෙවූ සෙවීම',
'paid-shopping': 'ගෙවූ සාප්පු සවාරි',
'paid-social': 'ගෙවූ සමාජ',
'paid-video': 'ගෙවූ වීඩියෝ',
'path': 'මාර්ගය',
'paths': 'මාර්ග',
'pixel': 'පික්සලය',
'pixels': 'පික්සල',
'powered-by': '{name} මඟින් බලගැන්වේ',
'preferences': 'මනාප',
'previous': 'පෙර',
'previous-period': 'පෙර කාලය',
'previous-year': 'පෙර වසර',
'profiles': 'පැතිකඩ',
'properties': 'ගුණාංග',
'property': 'ගුණාංගය',
'queries': 'විමසීම්',
'query': 'විමසුම',
'query-parameters': 'විමසුම් පරාමිති',
'referral': 'යොමු කිරීම',
'referrer': 'යොමු කරන්නා',
'referrers': 'යොමු කරන්නන්',
'regenerate': 'නැවත උත්පාදනය',
'region': 'කලාපය',
'regions': 'කලාප',
'remaining': 'ඉතිරි',
'remove': 'ඉවත් කරන්න',
'remove-member': 'සාමාජිකයා ඉවත් කරන්න',
'reports': 'වාර්තා',
'retention': 'රඳවා ගැනීම',
'retention-description': 'පරිශීලකයින් කොපමණ වාරයක් නැවත පැමිණෙනවාද යන්න නිරීක්ෂණය කර ඔබේ වෙබ් අඩවියේ ඇලෙන සුළුබව මනින්න.',
'revenue': 'ආදායම',
'role': 'භූමිකාව',
'run-query': 'විමසුම ධාවනය කරන්න',
'save-cohort': 'සමූහය සුරකින්න',
'save-segment': 'ඛණ්ඩය සුරකින්න',
'screen': 'තිරය',
'screens': 'තිර',
'search': 'සෙවීම',
'segment': 'ඛණ්ඩය',
'segments': 'ඛණ්ඩ',
'select': 'තෝරන්න',
'select-date': 'දිනය තෝරන්න',
'select-filter': 'පෙරහන තෝරන්න',
'select-role': 'භූමිකාව තෝරන්න',
'select-website': 'වෙබ් අඩවිය තෝරන්න',
'session': 'සැසිය',
'session-data': 'සැසි දත්ත',
'sessions': 'සැසි',
'share': 'බෙදාගන්න',
'sms': 'SMS',
'source': 'මූලාශ්‍රය',
'sources': 'මූලාශ්‍ර',
'start-step': 'ආරම්භක පියවර',
'steps': 'පියවර',
'sum': 'එකතුව',
'support': 'සහාය',
'switch-account': 'ගිණුම මාරු කරන්න',
'table': 'වගුව',
'tablet': 'ටැබ්ලටය',
'tag': 'ටැගය',
'tags': 'ටැග්',
'team': 'කණ්ඩායම',
'team-id': 'කණ්ඩායම් ID',
'team-manager': 'කණ්ඩායම් කළමනාකරු',
'team-member': 'කණ්ඩායම් සාමාජිකයා',
'team-name': 'කණ්ඩායම් නම',
'team-owner': 'කණ්ඩායම් හිමිකරු',
'team-settings': 'කණ්ඩායම් සැකසුම්',
'team-view-only': 'කණ්ඩායම් බැලීම පමණි',
'team-websites': 'කණ්ඩායම් වෙබ් අඩවි',
'teams': 'කණ්ඩායම්',
'term': 'යෙදුම',
'terms': 'නියම',
'title': 'මාතෘකාව',
'toggle-charts': 'ප්‍රස්ථාර ටොගල් කරන්න',
'total': 'මුළු',
'total-records': 'මුළු වාර්තා',
'traffic': 'ගමනාගමනය',
'transactions': 'ගනුදෙනු',
'transfer': 'මාරු කරන්න',
'transfer-website': 'වෙබ් අඩවිය මාරු කරන්න',
'true': 'සත්‍ය',
'type': 'වර්ගය',
'unique': 'අනන්‍ය',
'unique-events': 'අනන්‍ය සිදුවීම්',
'unique-visitors': 'අනන්‍ය නරඹන්නන්',
'uniqueCustomers': 'අනන්‍ය ගනුදෙනුකරුවන්',
'untitled': 'නම් නොකළ',
'update': 'යාවත්කාලීන කරන්න',
'url': 'URL',
'user': 'පරිශීලකයා',
'users': 'පරිශීලකයින්',
'utm': 'UTM',
'utm-campaign': 'UTM ව්‍යාපාරය',
'utm-content': 'UTM අන්තර්ගතය',
'utm-description': 'UTM පරාමිති හරහා ඔබේ ව්‍යාපාර නිරීක්ෂණය කරන්න.',
'utm-medium': 'UTM මාධ්‍යය',
'utm-source': 'UTM මූලාශ්‍රය',
'utm-term': 'UTM යෙදුම',
'value': 'අගය',
'version': 'අනුවාදය',
'view': 'බලන්න',
'view-only': 'බැලීම පමණි',
'views': 'නැරඹීම්',
'views-per-visit': 'සංචාරයකට නැරඹීම්',
'visit-duration': 'සංචාර කාලය',
'visitors': 'නරඹන්නන්',
'visits': 'සංචාර',
'website': 'වෙබ් අඩවිය',
'website-id': 'වෙබ් අඩවි ID',
'window': 'කවුළුව',
},
message: {
'action-confirmation': 'තහවුරු කිරීමට පහත කොටුවේ {confirmation} ටයිප් කරන්න.',
'bad-request': 'වලංගු නොවන ඉල්ලීමක්',
'collected-data': 'එකතු කළ දත්ත',
'confirm-leave': 'ඔබට <b>{target}</b> වෙතින් ඉවත් වීමට අවශ්‍ය බව විශ්වාසද?',
'confirm-remove': 'ඔබට <b>{target}</b> ඉවත් කිරීමට අවශ්‍ය බව විශ්වාසද?',
'delete-team-warning': 'කණ්ඩායමක් මකා දැමීමෙන් එහි සියලු වෙබ් අඩවි ද මැකෙනු ඇත.',
'delete-website-warning': 'සියලුම වෙබ් අඩවි දත්ත මකා දැමෙනු ඇත.',
'error': 'යමක් වැරදී ගියා.',
'event-log': '<a>{url}</a> හි <b>{event}</b>',
'forbidden': 'තහනම්',
'invalid-domain': 'වලංගු නොවන ඩොමේනයකි. http/https ඇතුළත් නොකරන්න.',
'min-password-length': 'අවම {n} අක්ෂර දිග',
'new-version-available': 'Umami හි නව අනුවාදයක් {version} ලබා ගත හැකිය!',
'no-event-data': 'සිදුවීම් දත්ත නොමැත.',
'no-match-password': 'මුරපද නොගැළපේ.',
'no-team-websites': 'මෙම කණ්ඩායමට වෙබ් අඩවි නොමැත.',
'no-teams': 'ඔබ කිසිදු කණ්ඩායමක් සාදා නැත.',
'no-users': 'පරිශීලකයින් නොමැත.',
'no-websites-configured': 'ඔබ වෙබ් අඩවි කිසිවක් සකසා නැත.',
'not-found': 'සොයා ගත නොහැක',
'nothing-selected': 'කිසිවක් තෝරා නැත.',
'reset-website': 'මෙම වෙබ් අඩවිය නැවත පිහිටුවීමට, පහත කොටුවේ {confirmation} ටයිප් කර තහවුරු කරන්න.',
'reset-website-warning': 'මෙම වෙබ් අඩවියට අදාල සියලු සංඛ්‍යාලේඛන මකා දැමෙනු ඇත, නමුත් ඔබේ සැකසුම් නොවෙනස්ව පවතිනු ඇත.',
'saved': 'සුරකින ලදි.',
'sever-error': 'සේවාදායක දෝෂයකි',
'team-already-member': 'ඔබ දැනටමත් මෙම කණ්ඩායමේ සාමාජිකයෙකි.',
'team-not-found': 'කණ්ඩායම සොයා ගත නොහැක.',
'team-websites-info': 'කණ්ඩායමේ ඕනෑම කෙනෙකුට වෙබ් අඩවි බැලිය හැකිය.',
'tracking-code': 'මෙම වෙබ් අඩවියේ සංඛ්‍යාලේඛන නිරීක්ෂණය කිරීමට, පහත කේතය ඔබේ HTML හි <head>...</head> කොටස තුළ තබන්න.',
'transfer-team-website-to-user': 'මෙම වෙබ් අඩවිය ඔබේ ගිණුමට මාරු කරන්නද?',
'transfer-user-website-to-team': 'මෙම වෙබ් අඩවිය මාරු කිරීමට කණ්ඩායම තෝරන්න.',
'transfer-website': 'වෙබ් අඩවියේ හිමිකාරිත්වය ඔබේ ගිණුමට හෝ වෙනත් කණ්ඩායමකට මාරු කරන්න.',
'triggered-event': 'අවුලුවන ලද සිදුවීම',
'unauthorized': 'අනවසරයි',
'user-deleted': 'පරිශීලකයා මකා දමන ලදි.',
'viewed-page': 'නැරඹූ පිටුව',
'visitor-log': '<b>{country}</b> සිට <b>{os}</b> <b>{device}</b> හි <b>{browser}</b> භාවිතා කරන නරඹන්නා',
}
}
};
for (const [locale, trans] of Object.entries(translations)) {
const filePath = path.join(dir, locale + '.json');
const data = JSON.parse(fs.readFileSync(filePath, 'utf8'));
let count = 0;
for (const [section, keys] of Object.entries(trans)) {
for (const [key, value] of Object.entries(keys)) {
if (data[section] && key in data[section]) {
data[section][key] = value;
count++;
}
}
}
const sorted = {};
for (const section of Object.keys(enUS)) {
if (data[section]) {
sorted[section] = {};
for (const key of Object.keys(enUS[section])) {
if (key in data[section]) sorted[section][key] = data[section][key];
}
for (const key of Object.keys(data[section])) {
if (!(key in sorted[section])) sorted[section][key] = data[section][key];
}
}
}
fs.writeFileSync(filePath, JSON.stringify(sorted, null, 2) + '\n', 'utf8');
console.log('Updated ' + locale + ': ' + count + ' keys');
}