mirror of
https://github.com/imayushsaini/Bombsquad-Ballistica-Modded-Server.git
synced 2025-10-20 00:00:39 +00:00
updating to 1.7.41
This commit is contained in:
parent
2d322e2193
commit
38797c6bc5
179 changed files with 23534 additions and 49926 deletions
1
dist/.keys
vendored
Normal file
1
dist/.keys
vendored
Normal file
|
|
@ -0,0 +1 @@
|
|||
{"private_key": "mbPuF1nhv-LVMzF4fy0utKAy5-OeSXdZgjZkFcdIccc", "public_key": "BNuFNlMkPymP0Tog1zbWLgovvmtKyDd0-W-INHFXvYCVszgAA_3VnTOc2V74HbGHtzurLEZWFsCSeqZ9F4VX7C0"}
|
||||
420
dist/ba_data/data/langdata.json
vendored
420
dist/ba_data/data/langdata.json
vendored
File diff suppressed because it is too large
Load diff
786
dist/ba_data/data/languages/arabic.json
vendored
786
dist/ba_data/data/languages/arabic.json
vendored
File diff suppressed because it is too large
Load diff
112
dist/ba_data/data/languages/belarussian.json
vendored
112
dist/ba_data/data/languages/belarussian.json
vendored
|
|
@ -1,12 +1,14 @@
|
|||
{
|
||||
"accountSettingsWindow": {
|
||||
"accountNameRules": "Імя акаўнта не можа ўтрымліваць эмоджы і іншыя спецыяльныя сымбалі",
|
||||
"accountsText": "Акаўнты",
|
||||
"accountsText": "el idioma",
|
||||
"achievementProgressText": "Дасягненні: ${COUNT} з ${TOTAL}",
|
||||
"campaignProgressText": "Прагрэс кампаніі (Цяжка): ${PROGRESS}",
|
||||
"changeOncePerSeason": "Вы можаце змяніць толькі адзін раз за сезон.",
|
||||
"changeOncePerSeasonError": "Трэба пачакаць наступнага сезона, каб зноў змяніць гэта (${NUM} days)",
|
||||
"createAnAccountText": "Стварыць акаўнт",
|
||||
"customName": "Зрабіць імя",
|
||||
"deleteAccountText": "Выдаліць уліковы запіс",
|
||||
"googlePlayGamesAccountSwitchText": "Калі вы жадаеце выкарыстоўваць іншы ўліковы запіс Google,\nвыберыце яго ў Google Play Games.",
|
||||
"linkAccountsEnterCodeText": "Увесцi Код",
|
||||
"linkAccountsGenerateCodeText": "Стварыць Код",
|
||||
|
|
@ -24,6 +26,7 @@
|
|||
"setAccountNameDesc": "Выберыце імя для адлюстравання для вашага ўліковага запісу.\nВы можаце выкарыстоўваць імя ў адным з звязаных\nуліковых запісаў альбо стварыць унікальнае прыстасаванае імя.",
|
||||
"signInInfoText": "Увайдзіце, каб збіраць квіткі, удзельнічаць у спаборніцтвах \nі сінхранізіраваць прагрэс паміж рознымі прыладамі.",
|
||||
"signInText": "Увайсці",
|
||||
"signInWithAnEmailAddressText": "Увайсці з дапамогай адраса электроннай пошты",
|
||||
"signInWithDeviceInfoText": "(толькі аўтаматычны акаўнт даступны для гэтай прылады)",
|
||||
"signInWithDeviceText": "Увайсці з акаўнта прылады",
|
||||
"signInWithGameCircleText": "Увайсці з дапамогаю Game Circle",
|
||||
|
|
@ -32,7 +35,7 @@
|
|||
"signInWithTestAccountText": "Увайсці з тэст-акаўнта",
|
||||
"signInWithText": "Увайдзіце з дапамогай ${SERVICE}",
|
||||
"signInWithV2InfoText": "(уліковы запіс, які працуе на ўсіх платформах)",
|
||||
"signInWithV2Text": "Увайдзіце з уліковым запісам BombSquad",
|
||||
"signInWithV2Text": "Увайдзіце з дапамогай уліковага запісу ${APP_NAME}",
|
||||
"signOutText": "Выйсці",
|
||||
"signingInText": "Уваход...",
|
||||
"signingOutText": "Выхад...",
|
||||
|
|
@ -343,6 +346,8 @@
|
|||
"allowText": "Дазволіць",
|
||||
"alreadySignedInText": "Ваш уліковы запіс увайшоў з іншай прылады;\nкалі ласка, пераключыце ўліковыя запісы альбо зачыніце гульню на вашым\nіншыя прылады і паспрабуйце яшчэ раз",
|
||||
"apiVersionErrorText": "Нельга загрузіць модуль ${NAME}; ён прапануецца для api-версіі ${VERSION_USED}; мы карыстаемся ${VERSION_REQUIRED}.",
|
||||
"applyText": "Ужыць",
|
||||
"areYouSureText": "Вы ўпэўнены",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(\"Аўтаматычна\" працуе толькі калі ўстаўлены навушнікі)",
|
||||
"headRelativeVRAudioText": "H-R VR Аўдыя",
|
||||
|
|
@ -364,14 +369,23 @@
|
|||
"boostText": "Павышэнне",
|
||||
"bsRemoteConfigureInAppText": "${REMOTE_APP_NAME} наладзіцца сам.",
|
||||
"buttonText": "Кнопка",
|
||||
"canWeDebugText": "Ці жадаеце вы аўтаматычна паведамляць аб багах\nі аварыях распрацоўніку?\n\nГэтыя паведамленні не ўтрымліваюць асабістую інфармацыю\nі дапамагаюць палепшыць гульню.",
|
||||
"canWeDebugText": "Хочаце, каб ${APP_NAME} аўтаматычна паведамляла\nпамылкі, збоі і асноўныя звесткі аб выкарыстанні для распрацоўшчыка?",
|
||||
"cancelText": "Зачыніць",
|
||||
"cantConfigureDeviceText": "Прабачце, ${DEVICE} не падтрымліваецца.",
|
||||
"challengeEndedText": "Спаборніцтва скончылася.",
|
||||
"chatMuteText": "Адключэнне гуку ў чаце",
|
||||
"chatMutedText": "Чат адключон",
|
||||
"chatUnMuteText": "Уключыць гук у чаце",
|
||||
"chests": {
|
||||
"prizeOddsText": "Прызавыя шанцы",
|
||||
"reduceWaitText": "Паменшыць Час",
|
||||
"slotDescriptionText": "Гэтая ячэйка можна храніць куфар.\n\nЗарабляй куфары гуляючы ў узроўні кампаніі, зарабляючы месцы ў турнірах, і робячы дасягнення.",
|
||||
"slotText": "Ячэйка куфара ${NUM}",
|
||||
"slotsFullWarningText": "УВАГА: Усё ячэйкі куфараў поўныя.\nДругія куфары якія вы заробіце будуць страчаны.",
|
||||
"unlocksInText": "Адмыкае ў"
|
||||
},
|
||||
"choosingPlayerText": "<выбар гульца>",
|
||||
"claimText": "Атрымаць",
|
||||
"codesExplainText": "Коды прадастаўляюцца распрацоўшчыкам\nдыягностыка і выпраўленне праблем з уліковым запісам.",
|
||||
"completeThisLevelToProceedText": "Вы павінны прайсці гэты\nўзровень, каб працягнуць!",
|
||||
"completionBonusText": "Бонус за праходжанне",
|
||||
|
|
@ -568,6 +582,7 @@
|
|||
"disableXInputDescriptionText": "Дазваляе больш за 4 кантролераў, але можа таксама не працаваць.",
|
||||
"disableXInputText": "Адключыць XInput",
|
||||
"disabledText": "Выключана",
|
||||
"discardText": "Адмовіться",
|
||||
"discordFriendsText": "Хочаце шукаць новых людзей для гульні?\nДалучайцеся да нашага Discord і знайдзіце новых сяброў!",
|
||||
"discordJoinText": "Далучайцеся да Discord",
|
||||
"doneText": "Зроблена",
|
||||
|
|
@ -651,6 +666,8 @@
|
|||
"errorText": "Памылка",
|
||||
"errorUnknownText": "Невядомая памылка",
|
||||
"exitGameText": "Зачыніць ${APP_NAME}?",
|
||||
"expiredAgoText": "Сапсаваўся ${T} таму",
|
||||
"expiresInText": "Сапсуецца праз ${T}",
|
||||
"exportSuccessText": "'${NAME}' экспартуецца.",
|
||||
"externalStorageText": "Знешняя памяць",
|
||||
"failText": "Правал",
|
||||
|
|
@ -713,6 +730,7 @@
|
|||
"copyCodeConfirmText": "Код скапіяваны ў буфер абмену",
|
||||
"copyCodeText": "Скапіяваць код",
|
||||
"dedicatedServerInfoText": "Для дасягнення найлепшых вынікаў наладзьце спецыяльны сервер. Гл. Bombsquadgame.com/server, каб даведацца, як.",
|
||||
"descriptionShortText": "Выкарыстайце акно збору каб сабраць групу.",
|
||||
"disconnectClientsText": "Гэта адлучыць ${COUNT} гульцоў з вашага\nлоббі. Вы ўпэўнены?",
|
||||
"earnTicketsForRecommendingAmountText": "Сябры атрымаюць ${COUNT} квіткоў, калі яны паспрабуюць гульню\n(вы таксама атрымаеце ${YOU_COUNT} квіткоў за кожнага сябра)",
|
||||
"earnTicketsForRecommendingText": "Падзяліцеся гульнёй, \nкаб атрымаць квіткі.",
|
||||
|
|
@ -726,10 +744,10 @@
|
|||
"friendPromoCodeAwardText": "Вы атрымаеце ${COUNT} квіткоў кожны раз, калі ён будзе выкарыстаны.",
|
||||
"friendPromoCodeExpireText": "Код дзейнічае ${EXPIRE_HOURS} гадзін(ы) і працуе толькі для новых гульцоў.",
|
||||
"friendPromoCodeInfoText": "Ён можа быць абменены на ${COUNT} квіткоў.\n\nЗайдзіце ў \"Налады->Дадатковыя->Увесці прома-код\", каб скарыстацца ім.\nНаведайце bombsquadgame.com, каб зладаваць гульню на любую платформу, якая падтрымліваецца.\nГэты код мінае праз ${EXPIRE_HOURS} гадзін(ы)(а) і ён дзейнічае толькі для новых гульцоў.",
|
||||
"friendPromoCodeInstructionsText": "Каб выкарыстоўваць яго, адкрыйце ${APP_NAME} і перайдзіце ў раздзел \"Налады-> Дадатковыя-> Увесці код\".\nГлядзіце bombsquadgame.com для спасылкі на загрузку ўсіх падтрымліваемых платформаў.",
|
||||
"friendPromoCodeInstructionsText": "Каб выкарыстаць яго, адкрыйце ${APP_NAME} і перайдзіце ў раздзел \"Налады-> Дадатковыя->Даслаць інфармацыю\".\nГлядзіце bombsquadgame.com каб знайсці спасылкі на спампоўку для ўсіх платформаў, што падтрымліваюцца.",
|
||||
"friendPromoCodeRedeemLongText": "Ён можа быць абменены на ${COUNT} квіткоў максімум ${MAX_USES} гульцамі.",
|
||||
"friendPromoCodeRedeemShortText": "Ён можа быць абменены на ${COUNT} квіткоў у гульні.",
|
||||
"friendPromoCodeWhereToEnterText": "(у раздзеле \"Налады->Дадатковыя->Увядзіце код\")",
|
||||
"friendPromoCodeWhereToEnterText": "(у раздзеле \"Налады->Дадатковыя->Даслаць інфармацыю\")",
|
||||
"getFriendInviteCodeText": "Атрымаць Код для Сяброў",
|
||||
"googlePlayDescriptionText": "Запрасіце гульцоў з Google Play у вашае лоббі.",
|
||||
"googlePlayInviteText": "Запрасіць",
|
||||
|
|
@ -827,6 +845,12 @@
|
|||
"youHaveShortText": "вы маеце ${COUNT}",
|
||||
"youHaveText": "вы маеце ${COUNT} квіткоў"
|
||||
},
|
||||
"goldPass": {
|
||||
"desc1InfTokensText": "Бясконцыя жэтоны.",
|
||||
"desc2NoAdsText": "Без рэкламы.",
|
||||
"desc3ForeverText": "Назаўсёды.",
|
||||
"goldPassText": "Залатой пропуск"
|
||||
},
|
||||
"googleMultiplayerDiscontinuedText": "Прабачце, мультігульны сервіс Гугл не даступны у гэты час.\nЯ клапачуся над гэтым з усёй скорасцю.\n\nДа таго часу, калі ласка паспрабуйце другое падключэнне",
|
||||
"googlePlayPurchasesNotAvailableText": "Пакупкі ў Google Play недаступныя.\nМагчыма, вам патрэбна абнавіць прыкладанне крамы.",
|
||||
"googlePlayServicesNotAvailableText": "Сэрвісы Google Play недаступныя.\nНекаторыя функцыі прыкладання могуць быць адключаныя.",
|
||||
|
|
@ -901,6 +925,7 @@
|
|||
"importText": "імпарт",
|
||||
"importingText": "Імпартырую...",
|
||||
"inGameClippedNameText": "У гульне будзе\n\"${NAME}\"",
|
||||
"inboxText": "Уваходныя",
|
||||
"installDiskSpaceErrorText": "ПАМЫЛКА: Немагчыма закончыць усталёўку.\nХутчэй за ўсё, у вас на прыладзе закончылася \nмесца. Вызваліце нямнога і паспрабуйце яшчэ раз.",
|
||||
"internal": {
|
||||
"arrowsToExitListText": "націсніце ${LEFT} ці ${RIGHT}, каб закрыць спіс",
|
||||
|
|
@ -955,12 +980,14 @@
|
|||
"timeOutText": "(засталося ${TIME} секунд(ы))",
|
||||
"touchScreenJoinWarningText": "Вы зайшлі з сэнсарным экранам.\nКалі гэта была памылка, націсніце 'Меню -> Пакінуць Гульню'.",
|
||||
"touchScreenText": "Сэнсарны Экран",
|
||||
"unableToCompleteTryAgainText": "Немагчыма гэта выпаўніць цяпер.\nПаспрабуйце яшчэ.",
|
||||
"unableToResolveHostText": "Памылка: немагчыма знайсцi хост.",
|
||||
"unavailableNoConnectionText": "Зараз гэта недаступна (няма інтэрнэт-злучэння?)",
|
||||
"vrOrientationResetCardboardText": "Скарыстайцеся гэтым, каб скінуць VR арыентацыю.\nКаб гуляць, вам спатрэбіцца знешні кантролер.",
|
||||
"vrOrientationResetText": "Скідванне арыентацыі VR.",
|
||||
"willTimeOutText": "(час скончыцца пры прастоі)"
|
||||
},
|
||||
"inventoryText": "Інвентар",
|
||||
"jumpBoldText": "ПРЫГАЙЦЕ!",
|
||||
"jumpText": "Прыгайце",
|
||||
"keepText": "Захаваць",
|
||||
|
|
@ -1007,8 +1034,11 @@
|
|||
"seasonEndsMinutesText": "Сезон скончыцца праз ${NUMBER} хвілін.",
|
||||
"seasonText": "Сезон ${NUMBER}",
|
||||
"tournamentLeagueText": "Вы павінны дасягнуць ${NAME} лігі, каб увайсці ў гэты турнір.",
|
||||
"trophyCountsResetText": "Трафейныя ачкі знікнуць у наступным сезоне."
|
||||
"trophyCountsResetText": "Трафейныя ачкі знікнуць у наступным сезоне.",
|
||||
"upToDateBonusDescriptionText": "Гульцы з актуальнай версіяй гульні\n атрымліваюць ${PERCENT}% бонус тут.",
|
||||
"upToDateBonusText": "Актуальны Бонус"
|
||||
},
|
||||
"learnMoreText": "Прачытайце больше",
|
||||
"levelBestScoresText": "Лепшыя вынікі на ўзроўні ${LEVEL}",
|
||||
"levelBestTimesText": "Лепшы час на ўзроўні ${LEVEL}",
|
||||
"levelFastestTimesText": "Самы хуткі на уроўні ${LEVEL}",
|
||||
|
|
@ -1054,6 +1084,8 @@
|
|||
"modeArcadeText": "Аркадны рэжым.",
|
||||
"modeClassicText": "Класічны рэжым.",
|
||||
"modeDemoText": "Дэмо рэжым",
|
||||
"moreSoonText": "Скора будзе больш...",
|
||||
"mostDestroyedPlayerText": "Самы Пабіты Гулец",
|
||||
"mostValuablePlayerText": "Самы Карысны Гулец",
|
||||
"mostViolatedPlayerText": "Самы Збіты Гулец",
|
||||
"mostViolentPlayerText": "Самы Жорсткі Гулец",
|
||||
|
|
@ -1070,6 +1102,7 @@
|
|||
"nameSuicideText": "${NAME} скончыў жыццё самагубствам.",
|
||||
"nameText": "Імя",
|
||||
"nativeText": "Родны",
|
||||
"newExclaimText": "Новае!",
|
||||
"newPersonalBestText": "Новы асабісты рэкорд!",
|
||||
"newTestBuildAvailableText": "Новая тэставая зборка даступна! (${VERSION} build ${BUILD}).\nАтрымайце яе на ${ADDRESS}",
|
||||
"newText": "Новы",
|
||||
|
|
@ -1080,6 +1113,7 @@
|
|||
"noContinuesText": "(без працягу)",
|
||||
"noExternalStorageErrorText": "Знешняя памяць не знойдзена",
|
||||
"noGameCircleText": "Памылка: вы не ўвайшлі ў GameCircle",
|
||||
"noMessagesText": "Няма паведамленняў.",
|
||||
"noPluginsInstalledText": "Убудовы не ўстаноўлены",
|
||||
"noProfilesErrorText": "У вас няма ніводнага профіля, таму вас будуць называць '${NAME}'.\nЗайдзіце ў \"Налады -> Профілі\", каб стварыць уласны профіль.",
|
||||
"noScoresYetText": "Вынікаў пакуль няма.",
|
||||
|
|
@ -1089,6 +1123,7 @@
|
|||
"noValidMapsErrorText": "Не знойдзена мап для гэтага тыпу гульні.",
|
||||
"notEnoughPlayersRemainingText": "Засталося вельмі мала гульцоў; пачніце новую гульню.",
|
||||
"notEnoughPlayersText": "Вам патрэбна не менш за ${COUNT} гульцоў, каб пачаць!",
|
||||
"notEnoughTicketsText": "Не дастаткова квіткоў!",
|
||||
"notNowText": "Не Зараз",
|
||||
"notSignedInErrorText": "Вы павінны ўвайсці, каб выканаць гэта.",
|
||||
"notSignedInGooglePlayErrorText": "Вы павінны ўвайсці з Google Play, каб выканаць гэта.",
|
||||
|
|
@ -1101,6 +1136,9 @@
|
|||
"onText": "Уключана",
|
||||
"oneMomentText": "Адзін момант...",
|
||||
"onslaughtRespawnText": "${PLAYER} з'явіцца ў ${WAVE} хвалі",
|
||||
"openMeText": "Адчыні Мяне!",
|
||||
"openNowText": "Адчыніць Зараз",
|
||||
"openText": "Адчыніць",
|
||||
"orText": "${A} ці ${B}",
|
||||
"otherText": "Іншае...",
|
||||
"outOfText": "(#${RANK} з ${ALL})",
|
||||
|
|
@ -1187,6 +1225,8 @@
|
|||
"punchText": "Ударыць",
|
||||
"purchaseForText": "Набыць за ${PRICE}",
|
||||
"purchaseGameText": "Набыць Гульню",
|
||||
"purchaseNeverAvailableText": "На жаль, пакупкі недаступныя для гэтай зборкі.\nПаспрабуйце ўвайсці ў свой уліковы запіс на іншай платформе і рабіць пакупкі адтуль.",
|
||||
"purchaseNotAvailableText": "Гэта купля не даступная.",
|
||||
"purchasingText": "Набыццё...",
|
||||
"quitGameText": "Зачыніць ${APP_NAME}?",
|
||||
"quittingIn5SecondsText": "Выхад праз 5 секунд...",
|
||||
|
|
@ -1228,6 +1268,7 @@
|
|||
"version_mismatch": "Старая версія.\nПераканайцеся, што вы маеце апошнія версіі\nBombSquad і BombSquad Remote."
|
||||
},
|
||||
"removeInGameAdsText": "Купіце \"${PRO}\" у магазіне, каб выдаліць рэкламу.",
|
||||
"removeInGameAdsTokenPurchaseText": "ЧАСОВАЯ ПРАПАНОВА: Купіце ЛЮБЫ пакет токенаў, каб выдаліць рэкламу ў гульні.",
|
||||
"renameText": "Перайменаваць",
|
||||
"replayEndText": "Закончыць Запіс",
|
||||
"replayNameDefaultText": "Запіс Апошняй Гульні",
|
||||
|
|
@ -1261,6 +1302,7 @@
|
|||
},
|
||||
"scoreWasText": "(быў ${COUNT})",
|
||||
"selectText": "Выбраць",
|
||||
"sendInfoDescriptionText": "Адпраўляе інфармацыю пра стан акаўнта і дадатку распрацоўшчыку.\nКалі ласка, пакіньце сваё імя ці прычыну адпраўкі.",
|
||||
"seriesWinLine1PlayerText": "ПЕРАМАГАЕ Ў",
|
||||
"seriesWinLine1TeamText": "ПЕРАМАГАЮЦЬ У",
|
||||
"seriesWinLine1Text": "ПЕРАМАГАЕ Ў",
|
||||
|
|
@ -1279,6 +1321,7 @@
|
|||
"alwaysUseInternalKeyboardDescriptionText": "(простая, зручная для кантролера клавіятура для рэдагавання тэксту)",
|
||||
"alwaysUseInternalKeyboardText": "Заўсёды карыстацца ўбудаванай клавіятурай",
|
||||
"benchmarksText": "Тэст Прадукцыйнасці і Тэст-Нагрузка",
|
||||
"devToolsText": "Інструменты распрацоўшчыка",
|
||||
"disableCameraGyroscopeMotionText": "Адключыць рух гіраскопа камеры",
|
||||
"disableCameraShakeText": "Адключыць устрэсванне камеры",
|
||||
"disableThisNotice": "(вы можаце адключыць гэта апавяшчэнне ў дадатковых наладах)",
|
||||
|
|
@ -1287,6 +1330,8 @@
|
|||
"enterPromoCodeText": "Увесці код",
|
||||
"forTestingText": "Гэтыя значэнні выкарыстоўваюцца толькі для тэстаў і будуць згублены пры закрыцці гульні.",
|
||||
"helpTranslateText": "Пераклад ${APP_NAME} з англійскай мовы - намаганне супольнасці\nпадтрымкі. Калі вы жадаеце выправіць пераклад,\nпрайдзіце па спасылцы ніжэй. Дзякуй!",
|
||||
"insecureConnectionsDescriptionText": "не рэкамендуецца, але можа дазволіць онлайн гульню\nз абмежаваных краін або сетак",
|
||||
"insecureConnectionsText": "Выкарыстоўвайце небяспечныя злучэнні",
|
||||
"kickIdlePlayersText": "Выкідваць гульцоў, якія не дзейнічаюць",
|
||||
"kidFriendlyModeText": "Дзіцячы Рэжым (менш гвалту і г.д.)",
|
||||
"languageText": "Мова",
|
||||
|
|
@ -1297,10 +1342,10 @@
|
|||
"resetText": "Скінуць",
|
||||
"sendInfoText": "Даслаць інфармацыю",
|
||||
"showBombTrajectoriesText": "Паказваць Траекторыi Бомб",
|
||||
"showDemosWhenIdleText": "Паказваць Дэма ў Рэжыме Чаканьня",
|
||||
"showDemosWhenIdleText": "Паказваць дэма ў рэжыме чакання",
|
||||
"showDeprecatedLoginTypesText": "Паказаць састарэлыя тыпы ўваходу",
|
||||
"showDevConsoleButtonText": "Паказаць Кнопку Кансолі Распрацоўніка",
|
||||
"showInGamePingText": "Паказываць Пынг Гульні",
|
||||
"showDevConsoleButtonText": "Паказаць кнопку кансолі распрацоўшчыка",
|
||||
"showInGamePingText": "Паказваць пінг гульні",
|
||||
"showPlayerNamesText": "Паказваць Імёны Гульцоў",
|
||||
"showUserModsText": "Паказаць Тэчку З Модамі",
|
||||
"titleText": "Дадаткова",
|
||||
|
|
@ -1347,6 +1392,7 @@
|
|||
},
|
||||
"spaceKeyText": "прабел",
|
||||
"statsText": "Статыстыка",
|
||||
"stopRemindingMeText": "Перастаньце нагадваць мне",
|
||||
"storagePermissionAccessText": "Для гэтага неабходны доступ да сховішча",
|
||||
"store": {
|
||||
"alreadyOwnText": "У вас ужо ёсць ${NAME}!",
|
||||
|
|
@ -1408,6 +1454,7 @@
|
|||
"testBuildValidatedText": "Тэставая Зборка Праверана; Поспехаў!",
|
||||
"thankYouText": "Дзякуй за вашу падтрымку! Прыемнай гульні!!",
|
||||
"threeKillText": "ТРЫ ЗАБОЙСТВЫ!!",
|
||||
"ticketsDescriptionText": "Білеты выкарыстоўвацца каб адкрыць персанажаў, карты, міні-гульні, і больш у краме.\n\nБілеты можна знайсці у куфарах атрыманных праз кампанію, турніры, і дасягненні.",
|
||||
"timeBonusText": "Бонус Часу",
|
||||
"timeElapsedText": "Прайшло Часу",
|
||||
"timeExpiredText": "Час Скончыўся",
|
||||
|
|
@ -1418,10 +1465,24 @@
|
|||
"tipText": "Парада",
|
||||
"titleText": "BombSquad",
|
||||
"titleVRText": "${ARG1}",
|
||||
"tokens": {
|
||||
"getTokensText": "Атрымайце жэтоны",
|
||||
"notEnoughTokensText": "Не дастаткова квіткоў!",
|
||||
"numTokensText": "${COUNT} Жэтоны",
|
||||
"openNowDescriptionText": "У вас дастаткова жэтонаў\nадкрыць гэта зараз - вы не робіце\nтрэба пачакаць.",
|
||||
"shinyNewCurrencyText": "Бліскучая новая валюта BombSquad's.",
|
||||
"tokenPack1Text": "Малы набор жэтонаў",
|
||||
"tokenPack2Text": "Сярэдні пакет жэтонаў",
|
||||
"tokenPack3Text": "Вялікі набор жэтонаў",
|
||||
"tokenPack4Text": "Велізарны набор жэтонаў",
|
||||
"tokensDescriptionText": "Токены выкарыстоўвацца\nкаб паскорыць адчыненне куфараў\nі для іншых асаблівасцей.\n\nВы можаце выйграць токены ў гульні\n або купіць іх у наборах. Або купіць залаты пропуск для бясконцых токенаў і больш не слыхаць аб іх.",
|
||||
"youHaveGoldPassText": "У вас ёсць залаты пропуск.\nУсе пакупкі жэтонаў бясплатныя.\nАтрымлівайце асалоду!"
|
||||
},
|
||||
"topFriendsText": "Топ Сяброў",
|
||||
"tournamentCheckingStateText": "Праверка статусу турніра; калі ласка, пачакайце...",
|
||||
"tournamentEndedText": "Гэты турнір скончыўся. Хутка пачнецца новы.",
|
||||
"tournamentEntryText": "Уваход у Турнір",
|
||||
"tournamentFinalStandingsText": "Канчатковыя Месцы",
|
||||
"tournamentResultsRecentText": "Вынікі Нядаўніх Турніраў",
|
||||
"tournamentStandingsText": "Месцы ў Турніры",
|
||||
"tournamentText": "Турнір",
|
||||
|
|
@ -1479,6 +1540,18 @@
|
|||
"Uber Onslaught": "Убер Атака",
|
||||
"Uber Runaround": "Убер Бегатня"
|
||||
},
|
||||
"displayItemNames": {
|
||||
"${C} Tickets": "${C} Білетаў0",
|
||||
"${C} Tokens": "${C} Токенаў",
|
||||
"Chest": "Куфар",
|
||||
"L1 Chest": "Куфар У1",
|
||||
"L2 Chest": "Куфар У2",
|
||||
"L3 Chest": "Куфар У3",
|
||||
"L4 Chest": "Куфар У4",
|
||||
"L5 Chest": "Куфар У5",
|
||||
"L6 Chest": "Куфар У6",
|
||||
"Unknown Chest": "Невядомы Куфар"
|
||||
},
|
||||
"gameDescriptions": {
|
||||
"Be the chosen one for a length of time to win.\nKill the chosen one to become it.": "Каб перамагчы, стань абраным на некаторы час.\nКаб стаць абраным, забей мінулага абранага.",
|
||||
"Bomb as many targets as you can.": "Падарвіце як мага больш мішэняў.",
|
||||
|
|
@ -1583,6 +1656,7 @@
|
|||
"Korean": "Карэйская",
|
||||
"Malay": "Малаі",
|
||||
"Persian": "Фарсі",
|
||||
"PirateSpeak": "Пірацкая мова",
|
||||
"Polish": "Польская",
|
||||
"Portuguese": "Партугальская",
|
||||
"Romanian": "Румынская",
|
||||
|
|
@ -1654,6 +1728,7 @@
|
|||
"Cheating detected; scores and prizes suspended for ${COUNT} days.": "Заўважана махлярства; ачкі і прызы забаронены на ${COUNT} дзён.",
|
||||
"Could not establish a secure connection.": "Немагчыма стварыць бяспечнае злучэнне.",
|
||||
"Daily maximum reached.": "Штодзённы максімум дасягнуты.",
|
||||
"Daily sign-in reward": "Штодзённая ўзнагарода за ўваход",
|
||||
"Entering tournament...": "Уваход у турнір...",
|
||||
"Invalid code.": "Няправільны код.",
|
||||
"Invalid payment; purchase canceled.": "Несапраўдная аплата; купля адменена.",
|
||||
|
|
@ -1663,11 +1738,14 @@
|
|||
"Item unlocked!": "Элемент разблакаваны!",
|
||||
"LINKING DENIED. ${ACCOUNT} contains\nsignificant data that would ALL BE LOST.\nYou can link in the opposite order if you'd like\n(and lose THIS account's data instead)": "ЗВЯЗАННЕ АДМЕНАВАНА. ${ACCOUNT} змяшчае\nважныя дадзеныя, якія ЎСЕ БУДУЦЬ СТРАЧЭНЫ.\nВы можаце зрабіць спасылку ў адваротным парадку, калі хочаце\n(і замест гэтага страціць дадзеныя ГЭТАГА ўліковага запісу)",
|
||||
"Link account ${ACCOUNT} to this account?\nAll existing data on ${ACCOUNT} will be lost.\nThis can not be undone. Are you sure?": "Прывязаць уліковы запіс ${ACCOUNT} к гэтаму улiковаму запiсу?\nУсе існуючыя дадзеныя на ${ACCOUNT} будуць страчаны.\nГэта не можа быць адменена. Вы ўпэўнены?",
|
||||
"Longer streaks lead to better rewards.": "Больш працяглыя серыі прыводзяць да лепшых узнагарод.",
|
||||
"Max number of playlists reached.": "Максімальная колькасць плэйлістаў дасягнута.",
|
||||
"Max number of profiles reached.": "Максімальная колькасць профіляў дасягнута.",
|
||||
"Maximum friend code rewards reached.": "Дасягнута максімальная ўзнагарода за код сябра.",
|
||||
"Message is too long.": "Паведамленне занадта доўгае.",
|
||||
"New tournament result!": "Новы вынік турніру!",
|
||||
"No servers are available. Please try again soon.": "Няма даступных сервераў. Калі ласка, паспрабуйце яшчэ раз пазней.",
|
||||
"No slots available. Free a slot and try again.": "Няма ячэек. Вызваліце слот і паспрабуйце яшчэ.",
|
||||
"Profile \"${NAME}\" upgraded successfully.": "Профіль \"${NAME}\" палепшаны паспяхова.",
|
||||
"Profile could not be upgraded.": "Профіль нельга палепшыць.",
|
||||
"Purchase successful!": "Аб'ект набыты паспяхова!",
|
||||
|
|
@ -1677,7 +1755,9 @@
|
|||
"Sorry, this code has already been used.": "Прабачце, гэты код ужо выкарыстоўваўся.",
|
||||
"Sorry, this code has expired.": "На жаль, срок дзеяння гэтага кода ўжо скончыўся.",
|
||||
"Sorry, this code only works for new accounts.": "Прабачце, гэты код працуе толькі на новых акаўнтах.",
|
||||
"Sorry, this has expired.": "Прабачце, гэта сапсавалася.",
|
||||
"Still searching for nearby servers; please try again soon.": "Працягваецца пошук бліжэйшых сервераў; калі ласка, паспрабуйце яшчэ раз пазней.",
|
||||
"Streak: ${NUM} days": "Серыя: ${NUM} дзён",
|
||||
"Temporarily unavailable; please try again later.": "Часова недаступны; калі ласка паспрабуйце зноў пазней.",
|
||||
"The tournament ended before you finished.": "Турнір скончыўся перад тым, як вы закончылі.",
|
||||
"This account cannot be unlinked for ${NUM} days.": "Немагчыма адлучыць гэты ўліковы запіс на працягу ${NUM} дзён.",
|
||||
|
|
@ -1688,19 +1768,28 @@
|
|||
"Tournaments require ${VERSION} or newer": "Для турніраў патрабуецца ${VERSION} або больш позняя версія",
|
||||
"Unlink ${ACCOUNT} from this account?\nAll data on ${ACCOUNT} will be reset.\n(except for achievements in some cases)": "Адключыць ${ACCOUNT} ад гэтага ўліковага запісу?\nУсе дадзеныя на ${ACCOUNT} будуць скіданы.\n(за выключэннем дасягненняў у некаторых выпадках)",
|
||||
"WARNING: complaints of hacking have been issued against your account.\nAccounts found to be hacking will be banned. Please play fair.": "УВАГА: на ваш уліковы запіс паступілі скаргі на ўзлом.\nБудуць забаронены ўліковыя запісы, якія будуць прызнаныя хакерскімі. Калі ласка, гуляйце сумленна.",
|
||||
"Wait reduced!": "Час паменшаны!",
|
||||
"Warning: This version of the game is limited to old account data; things may appear missing or out of date.\nPlease upgrade to a newer version of the game to see your latest account data.": "Папярэджанне: Гэтая версія гульні абмежаваная старымі дадзенымі ўліковага запісу; некаторыя рэчы могуць адсутнічаць або быць састарэлымі.\nКалі ласка, абнавіце гульню да новай версіі, каб убачыць апошнія дадзеныя вашага ўліковага запісу.",
|
||||
"Would you like to link your device account to this one?\n\nYour device account is ${ACCOUNT1}\nThis account is ${ACCOUNT2}\n\nThis will allow you to keep your existing progress.\nWarning: this cannot be undone!\n": "Ці жадаеце вы аб'яднаць ваш акаўнт на прыладзе з гэтым?\n\nВаш акаўнт на прыладзе - ${ACCOUNT1}\nГэты акаўнт - ${ACCOUNT2}\n\nГэта дазволіць вам сінхранізіраваць прагрэс.\nАсцярожна - гэта нельга адмяніць!",
|
||||
"You already own this!": "Вы ўжо маеце гэта!",
|
||||
"You can join in ${COUNT} seconds.": "Вы можаце далучыцца праз ${COUNT} секунд.",
|
||||
"You don't have enough tickets for this!": "У вас не хапае квіткоў!",
|
||||
"You don't own that.": "Вы не валодаеце гэтым.",
|
||||
"You got ${COUNT} tickets!": "Вы атрымалі ${COUNT} квіткоў!",
|
||||
"You got ${COUNT} tokens!": "Вы атрымалі ${COUNT} токенаў!",
|
||||
"You got a ${ITEM}!": "Вы атрымалі ${ITEM}!",
|
||||
"You got a chest!": "Вы атрымалі куфар!",
|
||||
"You got an achievement reward!": "Вы атрымалі узнагароду дасягнення!",
|
||||
"You have been promoted to a new league; congratulations!": "Вас павысілі і перавялі ў іншую лігу; віншуем!",
|
||||
"You lost a chest! (All your chest slots were full)": "Вы страцілі куфар! (Усе ячэйкі куфараў былі поўныя)",
|
||||
"You must update the app to view this.": "Вы павінны абнавіць праграму, каб праглядзець гэта.",
|
||||
"You must update to a newer version of the app to do this.": "Вы павінны абнавіць гульню, каб зрабіць гэта.",
|
||||
"You must update to the newest version of the game to do this.": "Для гэтага неабходна абнавіць да новай версіі гульні.",
|
||||
"You must wait a few seconds before entering a new code.": "Пачакайце некалькі секунд, перад тым, як уводзіць новы код.",
|
||||
"You placed #${RANK} in a tournament!": "Вы атрымалі #${RANK} месца ў турніры!",
|
||||
"You ranked #${RANK} in the last tournament. Thanks for playing!": "Ваш узровень у апошнім турніры: #${RANK}. Дзякуй за гульню!",
|
||||
"Your account was rejected. Are you signed in?": "Ваш уліковы запіс быў адхілены. Вы ўвайшлі ў сістэму?",
|
||||
"Your ad views are not registering. Ad options will be limited for a while.": "Прагляды вашай рэкламы не рэгіструюцца. Некаторы час параметры рэкламы будуць абмежаваныя.",
|
||||
"Your copy of the game has been modified.\nPlease revert any changes and try again.": "Ваша версія гульні была мадыфікавана.\nКалі ласка, адмяніце ўсе змены і паспрабуйце яшчэ раз.",
|
||||
"Your friend code was used by ${ACCOUNT}": "${ACCOUNT} выкарыстаў ваш сяброўскі код"
|
||||
},
|
||||
|
|
@ -1852,6 +1941,7 @@
|
|||
"twoKillText": "ДВА ЗАБОЙСТВЫ!",
|
||||
"uiScaleText": "Маштаб КІ",
|
||||
"unavailableText": "недаступна",
|
||||
"unclaimedPrizesText": "У вас незапатрабаваныя прызы!",
|
||||
"unconfiguredControllerDetectedText": "Невядомы кантролер знойдзены:",
|
||||
"unlockThisInTheStoreText": "Гэта павінна быць адкрыта ў магазіне.",
|
||||
"unlockThisProfilesText": "Каб стварыць больш за ${NUM} профіляў, вам трэба:",
|
||||
|
|
@ -1870,6 +1960,7 @@
|
|||
"usingItunesText": "Выкарыстанне музычнага прыкладання для саўндтрэка ...",
|
||||
"usingItunesTurnRepeatAndShuffleOnText": "Калі ласка, праверце, што ператасаванне і паўтор усяго ў iTunes ўключаны. ",
|
||||
"v2AccountLinkingInfoText": "Да прывязкі акаўнту V2, Нажміце 'Кіраваць акаўнтамі'.",
|
||||
"v2AccountRequiredText": "Для гэтага патрабуецца ўліковы запіс V2. Абнавіце свой уліковы запіс і паўтарыце спробу.",
|
||||
"validatingTestBuildText": "Праверка Тэставай Зборкі...",
|
||||
"viaText": "праз",
|
||||
"victoryText": "Перамога!",
|
||||
|
|
@ -1936,5 +2027,6 @@
|
|||
},
|
||||
"yesAllowText": "Так, Дазволіць!",
|
||||
"yourBestScoresText": "Вашыя Лепшыя Вынікі",
|
||||
"yourBestTimesText": "Ваш Лепшы Час"
|
||||
"yourBestTimesText": "Ваш Лепшы Час",
|
||||
"yourPrizeText": "Ваш прыз:"
|
||||
}
|
||||
1980
dist/ba_data/data/languages/chinesesimplified.json
vendored
Normal file
1980
dist/ba_data/data/languages/chinesesimplified.json
vendored
Normal file
File diff suppressed because it is too large
Load diff
286
dist/ba_data/data/languages/chinesetraditional.json
vendored
286
dist/ba_data/data/languages/chinesetraditional.json
vendored
|
|
@ -6,7 +6,9 @@
|
|||
"campaignProgressText": "戰役進度[困難]: ${PROGRESS}",
|
||||
"changeOncePerSeason": "每一賽季只有一次更改機會",
|
||||
"changeOncePerSeasonError": "您必須等${NUM}天到下個賽季改變此選項",
|
||||
"createAnAccountText": "建立一個帳戶",
|
||||
"customName": "自定義名稱",
|
||||
"deleteAccountText": "刪除帳戶",
|
||||
"googlePlayGamesAccountSwitchText": "如果您想使用其他 Google 帳戶,\n使用 Google Play 遊戲應用程序進行切換。",
|
||||
"linkAccountsEnterCodeText": "輸入代碼",
|
||||
"linkAccountsGenerateCodeText": "生成代碼",
|
||||
|
|
@ -23,6 +25,7 @@
|
|||
"setAccountNameDesc": "選擇你要為你帳號使用的遊戲內名稱。\n你直接使用你其中一個已連結的賬戶的名稱或\n創造一個獨特的自定義名稱。",
|
||||
"signInInfoText": "登入得以收集票卷,完成線上\n和與其他裝置共享進度",
|
||||
"signInText": "登入",
|
||||
"signInWithAnEmailAddressText": "以電郵登入",
|
||||
"signInWithDeviceInfoText": "一個這裝置現有的自動帳號",
|
||||
"signInWithDeviceText": "使用設備賬戶登入",
|
||||
"signInWithGameCircleText": "使用Game Circle登入",
|
||||
|
|
@ -31,7 +34,7 @@
|
|||
"signInWithTestAccountText": "用測試帳號登入",
|
||||
"signInWithText": "通過${SERVICE}登錄",
|
||||
"signInWithV2InfoText": "(可用於所有平臺的賬戶)",
|
||||
"signInWithV2Text": "使用Bombsquad賬戶登入",
|
||||
"signInWithV2Text": "以${APP_NAME}登入",
|
||||
"signOutText": "登出",
|
||||
"signingInText": "登入中…",
|
||||
"signingOutText": "登出中…",
|
||||
|
|
@ -339,6 +342,8 @@
|
|||
"allowText": "允許",
|
||||
"alreadySignedInText": "你的賬號已在其他設備上登錄\n請退出其他設備的登錄\n然後重試",
|
||||
"apiVersionErrorText": "無法加載模塊${NAME},它的API版本為${VERSION_USED},我們需要${VERSION_REQUIRED}。",
|
||||
"applyText": "套用",
|
||||
"areYouSureText": "確定?",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(“自動”僅在插入耳機時有效)",
|
||||
"headRelativeVRAudioText": "頭戴式VR音頻",
|
||||
|
|
@ -360,14 +365,24 @@
|
|||
"boostText": "加速",
|
||||
"bsRemoteConfigureInAppText": "${REMOTE_APP_NAME}是在应用本身中配置的。",
|
||||
"buttonText": "按鈕",
|
||||
"canWeDebugText": "你想要炸彈小分隊自動報告\n錯誤信息給開發人員嗎?\n\n信息中不包含個人信息\n可用於遊戲更加穩定",
|
||||
"canWeDebugText": "你想要${APP_NAME}自動報告\n錯誤信息給開發人員嗎?\n\n信息中不包含個人信息\n可用於遊戲更加穩定",
|
||||
"cancelText": "取消",
|
||||
"cantConfigureDeviceText": "抱歉,${DEVICE}不可配置",
|
||||
"challengeEndedText": "此比賽挑戰已結束",
|
||||
"chatMuteText": "屏蔽消息",
|
||||
"chatMutedText": "屏蔽聊天信息",
|
||||
"chatUnMuteText": "取消屏蔽消息",
|
||||
"chests": {
|
||||
"prizeOddsText": "中獎機率",
|
||||
"reduceWaitText": "減少等待",
|
||||
"slotDescriptionText": "這個插槽可以容納一個箱子。\n\n透過玩戰役關卡贏取寶箱,\n參加比賽,並完成\n成就。",
|
||||
"slotText": "寶箱槽 ${NUM}",
|
||||
"slotsFullWarningText": "警告:您的所有寶箱槽都已滿。\n您在本遊戲中獲得的所有寶箱都將遺失。",
|
||||
"unlocksInText": "解鎖"
|
||||
},
|
||||
"choosingPlayerText": "<選擇玩家>",
|
||||
"claimText": "宣稱",
|
||||
"codesExplainText": "代碼由開發者提供\n以診斷及改正帳戶問題。",
|
||||
"completeThisLevelToProceedText": "你需要先完成\n這一關",
|
||||
"completionBonusText": "完成獎勵",
|
||||
"configControllersWindow": {
|
||||
|
|
@ -448,6 +463,7 @@
|
|||
"swipeText": "滑動",
|
||||
"titleText": "觸屏操作設置"
|
||||
},
|
||||
"configureDeviceInSystemSettingsText": "${DEVICE}可以於系統設定中配置",
|
||||
"configureItNowText": "立即配置?",
|
||||
"configureText": "配置",
|
||||
"connectMobileDevicesWindow": {
|
||||
|
|
@ -468,7 +484,7 @@
|
|||
"activenessAllTimeInfoText": "不提供所有時間的排名",
|
||||
"activenessInfoText": "倍數隨著遊戲天數增加\n隨著離線天數減少",
|
||||
"activityText": "活動",
|
||||
"campaignText": "比賽",
|
||||
"campaignText": "徵戰",
|
||||
"challengesInfoText": "獲得完成迷你遊戲的獎勵\n\n每完成一項挑戰\n獎勵和難度就會隨之增加\n每挑戰失敗或放棄一次,獎勵和難度就會隨之下降",
|
||||
"challengesText": "挑戰",
|
||||
"currentBestText": "當前最高分",
|
||||
|
|
@ -550,6 +566,7 @@
|
|||
"demoText": "演示",
|
||||
"denyText": "拒絕",
|
||||
"deprecatedText": "棄用",
|
||||
"descriptionText": "簡介",
|
||||
"desktopResText": "桌面分辨率",
|
||||
"deviceAccountUpgradeText": "警告:\n您已使用設備帳戶(${NAME})登錄。\n設備帳戶將在未來的更新中刪除。\n如果您想保留賬戶,請升級到 V2 帳戶。",
|
||||
"difficultyEasyText": "簡單",
|
||||
|
|
@ -561,6 +578,7 @@
|
|||
"disableXInputDescriptionText": "允許使用四個以上的控制器,但可能不會正常工作",
|
||||
"disableXInputText": "禁用XInput",
|
||||
"disabledText": "禁用",
|
||||
"discardText": "丟棄",
|
||||
"discordFriendsText": "想要尋找新的朋友一起遊玩嗎?\n快來加入我們的Discord社區發現新夥伴!",
|
||||
"discordJoinText": "加入Discord社區",
|
||||
"doneText": "完成",
|
||||
|
|
@ -595,6 +613,7 @@
|
|||
"localProfileText": "(本地檔案)",
|
||||
"nameDescriptionText": "玩家名稱",
|
||||
"nameText": "名稱",
|
||||
"profileAlreadyExistsText": "同樣名稱的使用者已存在!",
|
||||
"randomText": "隨機",
|
||||
"titleEditText": "編輯檔案",
|
||||
"titleNewText": "新建檔案",
|
||||
|
|
@ -642,6 +661,8 @@
|
|||
"errorText": "錯誤",
|
||||
"errorUnknownText": "未知錯誤",
|
||||
"exitGameText": "退出${APP_NAME}?",
|
||||
"expiredAgoText": "${T} 前已過期",
|
||||
"expiresInText": "${T} 後過期",
|
||||
"exportSuccessText": "退出'${NAME}'",
|
||||
"externalStorageText": "外部存儲器",
|
||||
"failText": "失敗",
|
||||
|
|
@ -676,6 +697,8 @@
|
|||
"duplicateText": "複製\n比賽列表",
|
||||
"editText": "編輯\n比賽列表",
|
||||
"newText": "新建\n比賽列表",
|
||||
"pointsToWinText": "勝利分數",
|
||||
"seriesLengthText": "遊戲長度",
|
||||
"showTutorialText": "顯示新手教程",
|
||||
"shuffleGameOrderText": "隨機比賽模式",
|
||||
"titleText": "自定義${TYPE}列表"
|
||||
|
|
@ -701,6 +724,7 @@
|
|||
"copyCodeConfirmText": "代碼已複製進剪切板",
|
||||
"copyCodeText": "複製此代碼",
|
||||
"dedicatedServerInfoText": "建立一個伺服器來獲取最佳效果,詳情見bombsquadgame.com/server",
|
||||
"descriptionShortText": "使用「多人遊戲」視窗來創造多人遊戲。",
|
||||
"disconnectClientsText": "這將使派對中的${COUNT}位玩家斷開連接\n確定這麼做嗎?",
|
||||
"earnTicketsForRecommendingAmountText": "如果您的朋友們玩了這款遊戲,它們將會受到${COUNT}點券\n(每個遊玩的朋友會使你獲取${YOU_COUNT}點券)",
|
||||
"earnTicketsForRecommendingText": "分享遊戲來\n獲取免費點券...",
|
||||
|
|
@ -713,10 +737,10 @@
|
|||
"friendHasSentPromoCodeText": "從${NAME}中獲取到${COUNT}個${APP_NAME}點券",
|
||||
"friendPromoCodeAwardText": "每使用一次,你就會收到${COUNT}張點券",
|
||||
"friendPromoCodeExpireText": "此代碼將在${EXPIRE_HOURS}小時後失效,該代碼只對新玩家有效",
|
||||
"friendPromoCodeInstructionsText": "要使用此代碼,可打開${APP_NAME}。通過“設置->高級設置->輸入促銷代碼”操作\n所有支持平台的下載鏈接可見bombsquadgame.com",
|
||||
"friendPromoCodeInstructionsText": "要使用此代碼,可打開${APP_NAME}。通過“設置->高級設置->傳送資料”操作\n所有支持平台的下載鏈接可見bombsquadgame.com",
|
||||
"friendPromoCodeRedeemLongText": "達到${MAX_USES}人後就不能獲得${COUNT}免費點券(防止玩家作弊)",
|
||||
"friendPromoCodeRedeemShortText": "可在遊戲中兌換${COUNT}免費點券",
|
||||
"friendPromoCodeWhereToEnterText": "(在“設置->高級設置->輸入促銷代碼”中)",
|
||||
"friendPromoCodeWhereToEnterText": "(在 設置->高級設置->傳送資料 中)",
|
||||
"getFriendInviteCodeText": "獲取好友邀請碼",
|
||||
"googlePlayDescriptionText": "通過Google Play邀請玩家進入你的派對",
|
||||
"googlePlayInviteText": "邀請",
|
||||
|
|
@ -812,6 +836,12 @@
|
|||
"youHaveShortText": "你擁有 ${COUNT}",
|
||||
"youHaveText": "你擁有 ${COUNT}點券"
|
||||
},
|
||||
"goldPass": {
|
||||
"desc1InfTokensText": "無限代幣",
|
||||
"desc2NoAdsText": "零廣告",
|
||||
"desc3ForeverText": "直到永遠。",
|
||||
"goldPassText": "黃金通行證"
|
||||
},
|
||||
"googleMultiplayerDiscontinuedText": "抱歉,Google的多人遊戲服務不再可用。\n我將盡快更換新的替代服務。\n在此之前,請嘗試其他連接方法。\n-Eric",
|
||||
"googlePlayPurchasesNotAvailableText": "Google Play購買不可用\n你可能需要更新你的Google Play商店組件",
|
||||
"googlePlayServicesNotAvailableText": "Google play當前不可用\n一些功能將會被禁用",
|
||||
|
|
@ -825,7 +855,7 @@
|
|||
"highText": "高",
|
||||
"higherText": "最高",
|
||||
"lowText": "低",
|
||||
"maxFPSText": "最大FPS",
|
||||
"maxFPSText": "幀速上限",
|
||||
"mediumText": "中",
|
||||
"neverText": "關",
|
||||
"resolutionText": "分辨率",
|
||||
|
|
@ -886,6 +916,7 @@
|
|||
"importText": "導入",
|
||||
"importingText": "導入中...",
|
||||
"inGameClippedNameText": "名字會是\n\"${NAME}\"",
|
||||
"inboxText": "收件匣",
|
||||
"installDiskSpaceErrorText": "錯誤:無法完成安裝\n你的設備磁盤空間不足\n請釋放一些空間後重試",
|
||||
"internal": {
|
||||
"arrowsToExitListText": "按${LEFT} 或 ${RIGHT} 退出列表",
|
||||
|
|
@ -940,12 +971,14 @@
|
|||
"timeOutText": "(將在${TIME} 秒後超出時限)",
|
||||
"touchScreenJoinWarningText": "你已以觸摸屏的方式加入\n如果這是一個錯誤,請手動退出遊戲",
|
||||
"touchScreenText": "觸摸屏",
|
||||
"unableToCompleteTryAgainText": "現在無法完成此操作\n請稍後再試",
|
||||
"unableToResolveHostText": "錯誤:創建者網絡環境有問題",
|
||||
"unavailableNoConnectionText": "網絡連接故障",
|
||||
"vrOrientationResetCardboardText": "重置VR定位\n您需要用外部手柄來進行遊戲",
|
||||
"vrOrientationResetText": "VR定位重置",
|
||||
"willTimeOutText": "(若掛機則會超出時限)"
|
||||
},
|
||||
"inventoryText": "庫存",
|
||||
"jumpBoldText": "跳",
|
||||
"jumpText": "跳",
|
||||
"keepText": "舉起",
|
||||
|
|
@ -992,8 +1025,11 @@
|
|||
"seasonEndsMinutesText": "賽季將於${NUMBER}分鐘後結束",
|
||||
"seasonText": "第${NUMBER}賽季",
|
||||
"tournamentLeagueText": "你一定要到${NAME}聯賽後才能參加此賽事",
|
||||
"trophyCountsResetText": "獎杯計數將於下個賽季重置"
|
||||
"trophyCountsResetText": "獎杯計數將於下個賽季重置",
|
||||
"upToDateBonusDescriptionText": "請使用最新遊戲版本\n來獲得${PERCENT}%額外賠率",
|
||||
"upToDateBonusText": "最新版賠率"
|
||||
},
|
||||
"learnMoreText": "更多資訊...",
|
||||
"levelBestScoresText": "在${LEVEL}中的最高成績",
|
||||
"levelBestTimesText": "在${LEVEL}中的最佳時間",
|
||||
"levelIsLockedText": "${LEVEL}正在鎖定狀態",
|
||||
|
|
@ -1037,6 +1073,8 @@
|
|||
"modeArcadeText": "街機模式",
|
||||
"modeClassicText": "經典模式",
|
||||
"modeDemoText": "演示模式",
|
||||
"moreSoonText": "更多內容即將推出...",
|
||||
"mostDestroyedPlayerText": "被摧毀次數最多的球員",
|
||||
"mostValuablePlayerText": "最有價值的玩家",
|
||||
"mostViolatedPlayerText": "最遭受暴力的玩家",
|
||||
"mostViolentPlayerText": "最暴力的玩家",
|
||||
|
|
@ -1053,6 +1091,7 @@
|
|||
"nameSuicideText": "${NAME}自殺了.",
|
||||
"nameText": "名稱",
|
||||
"nativeText": "本機",
|
||||
"newExclaimText": "全新!",
|
||||
"newPersonalBestText": "新個人最佳!",
|
||||
"newTestBuildAvailableText": "更新的測試版可供下載了! (${VERSION} 升級至 ${BUILD}).\n到${ADDRESS}獲取測試版",
|
||||
"newText": "新建",
|
||||
|
|
@ -1063,6 +1102,7 @@
|
|||
"noContinuesText": "(無可繼續)",
|
||||
"noExternalStorageErrorText": "該設備未發現外部存儲器",
|
||||
"noGameCircleText": "錯誤:未登錄GameCircle",
|
||||
"noMessagesText": "沒有消息.",
|
||||
"noPluginsInstalledText": "未安裝插件",
|
||||
"noScoresYetText": "沒有得分記錄",
|
||||
"noServersFoundText": "未找到服務器",
|
||||
|
|
@ -1071,6 +1111,7 @@
|
|||
"noValidMapsErrorText": "沒有發現該比賽類型的有效地圖",
|
||||
"notEnoughPlayersRemainingText": "剩餘玩家不足,退出並開始新遊戲",
|
||||
"notEnoughPlayersText": "至少需要${COUNT}名玩家來開始遊戲",
|
||||
"notEnoughTicketsText": "票不夠了!",
|
||||
"notNowText": "不是現在",
|
||||
"notSignedInErrorText": "你必須登入來進行該操作.",
|
||||
"notSignedInGooglePlayErrorText": "您必須通過Google Play登錄",
|
||||
|
|
@ -1083,6 +1124,9 @@
|
|||
"onText": "開",
|
||||
"oneMomentText": "請等待",
|
||||
"onslaughtRespawnText": "${PLAYER}將於${WAVE}波復活",
|
||||
"openMeText": "打開我!",
|
||||
"openNowText": "即時打開",
|
||||
"openText": "打開",
|
||||
"orText": "${A} 或 ${B}",
|
||||
"otherText": "其他",
|
||||
"outOfText": "(在${ALL}名玩家中位列#${RANK})",
|
||||
|
|
@ -1168,10 +1212,12 @@
|
|||
"punchText": "拳擊",
|
||||
"purchaseForText": "購買花費 ${PRICE}",
|
||||
"purchaseGameText": "購買遊戲",
|
||||
"purchaseNeverAvailableText": "抱歉, 此版本並不支援遊戲購物。\n請於另一個平台上登入你的帳號,並於該處進行購買。",
|
||||
"purchaseNotAvailableText": "此產品目前缺貨。。。",
|
||||
"purchasingText": "正在購買...",
|
||||
"quitGameText": "退出 ${APP_NAME}?",
|
||||
"quittingIn5SecondsText": "將於5秒後退出...",
|
||||
"randomPlayerNamesText": "Reol,爆破鬼才,ZACK,炸蛋小分隊,隊友摧毀者,炸彈吞噬者,TNT的朋友,冰凍使者,田所浩二,拳擊高手,創世神,炸彈人,機械狂人,大發明家,吹噓海盜,末日預言者",
|
||||
"randomPlayerNamesText": "爆破鬼才,ZACK,炸蛋小分隊,隊友摧毀者,炸彈吞噬者,TNT的朋友,冰凍使者,拳擊高手,創世神,炸彈人,機械狂人,大發明家,吹噓海盜,末日預言者",
|
||||
"randomText": "隨機",
|
||||
"rankText": "排行",
|
||||
"ratingText": "排名",
|
||||
|
|
@ -1209,6 +1255,7 @@
|
|||
"version_mismatch": "版本不匹配\n確保Bombsquad與Bombsquad手柄都是\n最新版本後重試"
|
||||
},
|
||||
"removeInGameAdsText": "在商店中解鎖\"${PRO}\",以刪除遊戲中的廣告",
|
||||
"removeInGameAdsTokenPurchaseText": "!!限時優惠!! 購買任何代幣包以移除廣告",
|
||||
"renameText": "重命名",
|
||||
"replayEndText": "結束回放",
|
||||
"replayNameDefaultText": "終場遊戲回放",
|
||||
|
|
@ -1242,6 +1289,7 @@
|
|||
},
|
||||
"scoreWasText": "(是 ${COUNT})",
|
||||
"selectText": "選擇",
|
||||
"sendInfoDescriptionText": "把帳戶狀態以及遊戲狀態資料給予開發者。\n必須包括你的名稱,以及傳送資料理由。",
|
||||
"seriesWinLine1PlayerText": "贏得",
|
||||
"seriesWinLine1TeamText": "贏得",
|
||||
"seriesWinLine1Text": "贏得",
|
||||
|
|
@ -1259,6 +1307,7 @@
|
|||
"alwaysUseInternalKeyboardDescriptionText": "(注意:遊戲內置輸入法只能讓輸入英文字符和部分符號)",
|
||||
"alwaysUseInternalKeyboardText": "使用遊戲內置輸入法",
|
||||
"benchmarksText": "基準/壓力測試",
|
||||
"devToolsText": "開發工具",
|
||||
"disableCameraGyroscopeMotionText": "禁用陀螺儀畫面抖動",
|
||||
"disableCameraShakeText": "禁止畫面抖動",
|
||||
"disableThisNotice": "(可在高級設置中關閉此通知)",
|
||||
|
|
@ -1267,14 +1316,20 @@
|
|||
"enterPromoCodeText": "輸入促銷代碼",
|
||||
"forTestingText": "注意:這些數值僅用於測試,並會在退出遊戲後重置",
|
||||
"helpTranslateText": "${APP_NAME}的非英語翻譯是其他玩家\n共同努力的成果,如果你希望參與遊戲文本翻譯或修正\n請點擊以下連接。感謝大家對遊戲翻譯提出的貢獻",
|
||||
"insecureConnectionsDescriptionText": "可以開放來自受限制國家或互聯網的網上遊玩\n因安全隱憂並不建議使用",
|
||||
"insecureConnectionsText": "使用公開網絡連接",
|
||||
"kickIdlePlayersText": "自動踢出掛機玩家",
|
||||
"kidFriendlyModeText": "兒童模式(低暴力等)",
|
||||
"languageText": "語言",
|
||||
"moddingGuideText": "修改指南",
|
||||
"moddingToolsText": "改裝工具",
|
||||
"mustRestartText": "你必須重啟遊戲才能生效",
|
||||
"netTestingText": "網絡連接測試",
|
||||
"resetText": "恢復默認",
|
||||
"sendInfoText": "傳送資料",
|
||||
"showBombTrajectoriesText": "顯示炸彈軌跡",
|
||||
"showDemosWhenIdleText": "掛機時展示遊戲示範",
|
||||
"showDeprecatedLoginTypesText": "展示廢舊的登入選項",
|
||||
"showDevConsoleButtonText": "顯示開發控制臺按鈕",
|
||||
"showInGamePingText": "顯示遊戲內延遲",
|
||||
"showPlayerNamesText": "顯示玩家名稱",
|
||||
|
|
@ -1284,7 +1339,7 @@
|
|||
"translationFetchErrorText": "翻譯狀態不可用",
|
||||
"translationFetchingStatusText": "檢查翻譯進度...",
|
||||
"translationInformMe": "我的語言翻譯可更新時通知我",
|
||||
"translationNoUpdateNeededText": "當前語言翻譯文本是最新的",
|
||||
"translationNoUpdateNeededText": "當前語言翻譯文本是最新的!帥呀!",
|
||||
"translationUpdateNeededText": "**當前語言翻譯文本需要更新**",
|
||||
"vrTestingText": "VR 調試"
|
||||
},
|
||||
|
|
@ -1295,6 +1350,9 @@
|
|||
"signInWithGameCenterText": "使用Game Center\n來登錄",
|
||||
"singleGamePlaylistNameText": "僅 ${GAME}",
|
||||
"singlePlayerCountText": "1 玩家",
|
||||
"sizeLargeText": "大",
|
||||
"sizeMediumText": "中",
|
||||
"sizeSmallText": "小",
|
||||
"soloNameFilterText": "單挑模式 ${NAME}",
|
||||
"soundtrackTypeNames": {
|
||||
"CharSelect": "角色選擇",
|
||||
|
|
@ -1320,6 +1378,7 @@
|
|||
},
|
||||
"spaceKeyText": "空格",
|
||||
"statsText": "統計",
|
||||
"stopRemindingMeText": "別再提醒我了",
|
||||
"storagePermissionAccessText": "需要存儲權限",
|
||||
"store": {
|
||||
"alreadyOwnText": "您已擁有${NAME}!",
|
||||
|
|
@ -1355,7 +1414,7 @@
|
|||
"winterSpecialText": "冬季特售",
|
||||
"youOwnThisText": "-您已擁有-"
|
||||
},
|
||||
"storeDescriptionText": "8人派对游戏尽显疯狂!\n\n在爆炸类迷你游戏中炸飞您的好友(或电脑),如夺旗战、冰球战及史诗级慢动作死亡竞赛!\n\n简单的控制和广泛的手柄支持可轻松允许多达8人参与游戏;您甚至可以通过免费的“BombSquad Remote”应用将您的移动设备作为手柄使用!\n\n投射炸弹!\n\n更多信息,请登录www.froemling.net/bombsquad。",
|
||||
"storeDescriptionText": "瘋狂的8人派對遊戲!!!\n\n在錦標賽或大小遊戲中(包括但不限於奪旗,冰球,慢動作的死亡競賽)用炸彈炸毁你的朋友(或人機)吧!\n\n簡易的控制模式以及廣泛的控制器支援令召集8個人變得相當容易;甚至可以用 BombSquad Remote 手機程式來用手機作為控制器!\n\n爆炸就是藝術!!\n\n更多資訊請查看www.froemling.net/bombsquad",
|
||||
"storeDescriptions": {
|
||||
"blowUpYourFriendsText": "炸飛你的朋友",
|
||||
"competeInMiniGamesText": "在從競速到飛行的迷你遊戲中一決高下",
|
||||
|
|
@ -1378,6 +1437,7 @@
|
|||
"testBuildValidatedText": "測試版已通過驗證,盡情享用",
|
||||
"thankYouText": "感謝你的支持!盡情享受遊戲!",
|
||||
"threeKillText": "三殺!!",
|
||||
"ticketsDescriptionText": "點券可以解鎖新角色,新遊戲,新地圖\n以及更多在商店找到的東西\n\n你可以透過贏取寶箱來獲得更多點券\n( 方法包括:徵戰、錦標賽、成就)",
|
||||
"timeBonusText": "時間獎勵",
|
||||
"timeElapsedText": "時間耗盡",
|
||||
"timeExpiredText": "時間結束",
|
||||
|
|
@ -1386,12 +1446,26 @@
|
|||
"timeSuffixMinutesText": "${COUNT}分",
|
||||
"timeSuffixSecondsText": "${COUNT}秒",
|
||||
"tipText": "提示",
|
||||
"titleText": "BombSquad",
|
||||
"titleText": "炸彈小分隊",
|
||||
"titleVRText": "BombSquad VR",
|
||||
"tokens": {
|
||||
"getTokensText": "獲得代幣...",
|
||||
"notEnoughTokensText": "代幣不足!",
|
||||
"numTokensText": "${COUNT}代幣",
|
||||
"openNowDescriptionText": "您有足夠的代幣\n現在打開這個 - 你不\n需要等待。",
|
||||
"shinyNewCurrencyText": "炸彈小分隊 閃亮亮 的全新遊戲幣!!",
|
||||
"tokenPack1Text": "50代幣",
|
||||
"tokenPack2Text": "500代幣",
|
||||
"tokenPack3Text": "1200代幣",
|
||||
"tokenPack4Text": "2600代幣",
|
||||
"tokensDescriptionText": "代幣能夠加速寶箱解鎖\n或其他遊戲及帳戶有關功能\n\n你可以於遊戲中贏取代幣或\n購買代幣包\n另外亦可以購買黃金通行證以得到無限代幣",
|
||||
"youHaveGoldPassText": "你有黃金通行證\n所有費用已豁免\n盡情享用!!"
|
||||
},
|
||||
"topFriendsText": "最佳好友",
|
||||
"tournamentCheckingStateText": "檢查錦標賽狀態中,請稍後...",
|
||||
"tournamentEndedText": "此錦標賽已結束。新的錦標賽已開始",
|
||||
"tournamentEntryText": "錦標賽入口",
|
||||
"tournamentFinalStandingsText": "最終排名",
|
||||
"tournamentResultsRecentText": "最近錦標賽結果",
|
||||
"tournamentStandingsText": "錦標賽積分榜",
|
||||
"tournamentText": "錦標賽",
|
||||
|
|
@ -1447,6 +1521,18 @@
|
|||
"Uber Onslaught": "高級衝鋒戰",
|
||||
"Uber Runaround": "高級塔防戰"
|
||||
},
|
||||
"displayItemNames": {
|
||||
"${C} Tickets": "${C}點券",
|
||||
"${C} Tokens": "${C}代幣",
|
||||
"Chest": "寶箱",
|
||||
"L1 Chest": "壹等寶箱",
|
||||
"L2 Chest": "貳等寶箱",
|
||||
"L3 Chest": "參等寶箱",
|
||||
"L4 Chest": "肆等寶箱",
|
||||
"L5 Chest": "伍等寶箱",
|
||||
"L6 Chest": "陸等寶箱",
|
||||
"Unknown Chest": "寶箱等級: 不明!"
|
||||
},
|
||||
"gameDescriptions": {
|
||||
"Be the chosen one for a length of time to win.\nKill the chosen one to become it.": "在一定時間內取代選定目標進而取得勝利\n殺死選定目標並取而代之",
|
||||
"Bomb as many targets as you can.": "盡可能多的摧毀炸毀",
|
||||
|
|
@ -1551,6 +1637,7 @@
|
|||
"Korean": "朝鮮語",
|
||||
"Malay": "馬來語",
|
||||
"Persian": "波斯文",
|
||||
"PirateSpeak": "海盜口語",
|
||||
"Polish": "波蘭語",
|
||||
"Portuguese": "葡萄牙語",
|
||||
"Romanian": "羅馬尼亞語",
|
||||
|
|
@ -1573,23 +1660,23 @@
|
|||
"Silver": "銀牌"
|
||||
},
|
||||
"mapsNames": {
|
||||
"Big G": "大G",
|
||||
"Bridgit": "小橋",
|
||||
"Big G": "大G賽道",
|
||||
"Bridgit": "布里吉特橋",
|
||||
"Courtyard": "庭院",
|
||||
"Crag Castle": "岩城",
|
||||
"Doom Shroom": "蘑菇雲",
|
||||
"Crag Castle": "雙子岩城",
|
||||
"Doom Shroom": "末日蘑菇谷",
|
||||
"Football Stadium": "橄欖球場",
|
||||
"Happy Thoughts": "飛行地帶",
|
||||
"Happy Thoughts": "快樂仙境",
|
||||
"Hockey Stadium": "冰球場",
|
||||
"Lake Frigid": "寒湖",
|
||||
"Lake Frigid": "冰湖賽道",
|
||||
"Monkey Face": "猴面",
|
||||
"Rampage": "狂暴",
|
||||
"Roundabout": "塔防",
|
||||
"Step Right Up": "攻擊",
|
||||
"The Pad": "平板",
|
||||
"Tip Top": "頂點",
|
||||
"Tower D": "塔防",
|
||||
"Zigzag": "蜿蜒"
|
||||
"Rampage": "狂暴擂台",
|
||||
"Roundabout": "馬蹄木塔",
|
||||
"Step Right Up": "對立戰地",
|
||||
"The Pad": "平板高塔",
|
||||
"Tip Top": "頂峰據點",
|
||||
"Tower D": "D氏城堡",
|
||||
"Zigzag": "蜿蜒地帶"
|
||||
},
|
||||
"playlistNames": {
|
||||
"Just Epic": "僅限史詩級",
|
||||
|
|
@ -1622,6 +1709,7 @@
|
|||
"Cheating detected; scores and prizes suspended for ${COUNT} days.": "發現賬號作弊行為;得分及獎勵在${COUNT}天內暫停",
|
||||
"Could not establish a secure connection.": "無法建立安全連接",
|
||||
"Daily maximum reached.": "已達今日上限",
|
||||
"Daily sign-in reward": "每天登入獎勵",
|
||||
"Entering tournament...": "進入錦標賽...",
|
||||
"Invalid code.": "代碼無效",
|
||||
"Invalid payment; purchase canceled.": "不可用的付款方式:交易取消",
|
||||
|
|
@ -1631,11 +1719,14 @@
|
|||
"Item unlocked!": "項目已解除綁定",
|
||||
"LINKING DENIED. ${ACCOUNT} contains\nsignificant data that would ALL BE LOST.\nYou can link in the opposite order if you'd like\n(and lose THIS account's data instead)": "連接賬號行為取消,${ACCOUNT}含有\n的重要數據可能會丟失\n如果想要關聯的話,你可以反向鏈接賬號\n(最好用自己的賬號進行關聯)",
|
||||
"Link account ${ACCOUNT} to this account?\nAll existing data on ${ACCOUNT} will be lost.\nThis can not be undone. Are you sure?": "確定將${ACCOUNT}關聯到此賬戶嗎\n${ACCOUNT}將共享數據\n可在30天后取消",
|
||||
"Longer streaks lead to better rewards.": "連勝越長,獎勵越好",
|
||||
"Max number of playlists reached.": "已達到最大列表數",
|
||||
"Max number of profiles reached.": "已達到最大檔案數",
|
||||
"Maximum friend code rewards reached.": "邀請碼獎勵達到上限",
|
||||
"Message is too long.": "消息過長",
|
||||
"New tournament result!": "新的比賽結果!",
|
||||
"No servers are available. Please try again soon.": "當前沒有空餘的伺服器,請稍後再試",
|
||||
"No slots available. Free a slot and try again.": "沒有可用空位。釋放一個插槽並重試。",
|
||||
"Profile \"${NAME}\" upgraded successfully.": "\"${NAME}\"檔案升級成功",
|
||||
"Profile could not be upgraded.": "檔案不可升級",
|
||||
"Purchase successful!": "購買成功",
|
||||
|
|
@ -1645,7 +1736,9 @@
|
|||
"Sorry, this code has already been used.": "對不起,此代碼已被使用",
|
||||
"Sorry, this code has expired.": "對不起,此代碼已失效",
|
||||
"Sorry, this code only works for new accounts.": "對不起,此代碼僅適用於新用戶",
|
||||
"Sorry, this has expired.": "抱歉,此物品已經過期。",
|
||||
"Still searching for nearby servers; please try again soon.": "正在查詢附近的伺服器,請稍後再試",
|
||||
"Streak: ${NUM} days": "連勝: ${NUM}天",
|
||||
"Temporarily unavailable; please try again later.": "目前暫不可用,請稍後再試",
|
||||
"The tournament ended before you finished.": "本次錦標賽將於在你完成之前結束了",
|
||||
"This account cannot be unlinked for ${NUM} days.": "此賬戶在${NUM}天內無法取消關聯",
|
||||
|
|
@ -1656,19 +1749,28 @@
|
|||
"Tournaments require ${VERSION} or newer": "比賽需要${VERSION}或更高的版本",
|
||||
"Unlink ${ACCOUNT} from this account?\nAll data on ${ACCOUNT} will be reset.\n(except for achievements in some cases)": "從此賬戶上取消${ACCOUNT}的關聯?\n${ACCOUNT}上的數據將會被重置\n(在某些情況下成就除外)",
|
||||
"WARNING: complaints of hacking have been issued against your account.\nAccounts found to be hacking will be banned. Please play fair.": "警告:針對你的賬戶發出黑客控訴\n被盜用的賬戶將被禁止。請公平競技",
|
||||
"Wait reduced!": "等待減少!",
|
||||
"Warning: This version of the game is limited to old account data; things may appear missing or out of date.\nPlease upgrade to a newer version of the game to see your latest account data.": "警告:本版本遊戲僅限舊帳號資料;東西可能會遺失或過時。\n請升級到較新版本的遊戲才能查看您最新的帳戶資料。",
|
||||
"Would you like to link your device account to this one?\n\nYour device account is ${ACCOUNT1}\nThis account is ${ACCOUNT2}\n\nThis will allow you to keep your existing progress.\nWarning: this cannot be undone!\n": "是否經你的賬戶連接到此?\n\n你的賬戶為${ACCOUNT1}\n此賬戶為${ACCOUNT2}\n\n你可以保存現有進度\n警告:此操作可在30天后取消",
|
||||
"You already own this!": "你已擁有這個",
|
||||
"You can join in ${COUNT} seconds.": "你可以在${COUNT}秒後加入",
|
||||
"You don't have enough tickets for this!": "你的點券不足",
|
||||
"You don't own that.": "你尚未擁有",
|
||||
"You got ${COUNT} tickets!": "你獲得了${COUNT}點券",
|
||||
"You got ${COUNT} tokens!": "你獲得了${COUNT}代幣",
|
||||
"You got a ${ITEM}!": "你獲得了一個${ITEM}!",
|
||||
"You got a chest!": "你獲得了一個寶箱!",
|
||||
"You got an achievement reward!": "你獲得了一個成就獎項!",
|
||||
"You have been promoted to a new league; congratulations!": "你已經被升級至一個全新的聯賽:恭喜",
|
||||
"You lost a chest! (All your chest slots were full)": "你失去了一個箱子! (您的所有寶箱槽都已滿)",
|
||||
"You must update the app to view this.": "您必須更新應用程式才能查看此內容",
|
||||
"You must update to a newer version of the app to do this.": "你必須先更新遊戲才能這麼做",
|
||||
"You must update to the newest version of the game to do this.": "你必須更新到最新版本才可以執行此操作",
|
||||
"You must wait a few seconds before entering a new code.": "你必須要在輸入新代碼前等待一會",
|
||||
"You placed #${RANK} in a tournament!": "你於錦標賽中得到第${RANK}名!",
|
||||
"You ranked #${RANK} in the last tournament. Thanks for playing!": "你在上一場錦標賽中排名#${RANK},繼續加油",
|
||||
"Your account was rejected. Are you signed in?": "你的髒號被拒絕,您是否已登陸?",
|
||||
"Your ad views are not registering. Ad options will be limited for a while.": "您的廣告瀏覽量未記錄。 廣告選項將在一段時間內受到限制。",
|
||||
"Your copy of the game has been modified.\nPlease revert any changes and try again.": "您的遊戲副本已更改\n請恢復任何更改並重試",
|
||||
"Your friend code was used by ${ACCOUNT}": "${ACCOUNT}已使用您的促銷代碼"
|
||||
},
|
||||
|
|
@ -1725,51 +1827,51 @@
|
|||
"Red": "紅隊"
|
||||
},
|
||||
"tips": {
|
||||
"A perfectly timed running-jumping-spin-punch can kill in a single hit\nand earn you lifelong respect from your friends.": "一记完美、及时的“跑跳旋转拳”可一次性击杀敌人,并\n助你一生享有好友的尊重。",
|
||||
"Always remember to floss.": "地面上的辅助线可能会有用。",
|
||||
"Create player profiles for yourself and your friends with\nyour preferred names and appearances instead of using random ones.": "使用首选名称和外观,而非采用随机形式\n来为自己和好友创建玩家档案。",
|
||||
"Curse boxes turn you into a ticking time bomb.\nThe only cure is to quickly grab a health-pack.": "诅咒之盒把你变成了一个定时炸弹。\n唯一的解决方法是迅速抢占一个生命值包。",
|
||||
"Despite their looks, all characters' abilities are identical,\nso just pick whichever one you most closely resemble.": "尽管长相不同,所有人物的技能是相同的,\n所以只需随意挑选一个与你最相似的。",
|
||||
"Don't get too cocky with that energy shield; you can still get yourself thrown off a cliff.": "不要因为拥有能量盾牌而狂妄自大;你仍然可能使自己坠入悬崖。",
|
||||
"Don't run all the time. Really. You will fall off cliffs.": "不要总是奔跑。真的。你可能会坠入悬崖。",
|
||||
"Don't spin for too long; you'll become dizzy and fall.": "不要旋转得太久,不然你会眩晕并摔倒。",
|
||||
"Hold any button to run. (Trigger buttons work well if you have them)": "按住任意按钮来奔跑。(如果你有的话,扳机按钮将会很有用)",
|
||||
"Hold down any button to run. You'll get places faster\nbut won't turn very well, so watch out for cliffs.": "按住任意按钮来奔跑。你将会更快地抵达一些地方,\n但是转弯效果并不好,所以当心悬崖。",
|
||||
"Ice bombs are not very powerful, but they freeze\nwhoever they hit, leaving them vulnerable to shattering.": "寒冰炸弹并非很厉害,但它们能够冻结\n任何被击中者,使他们极易粉碎。",
|
||||
"If someone picks you up, punch them and they'll let go.\nThis works in real life too.": "如果有人将你提起,出拳攻击他们,他们便会放手。\n这在现实生活中同样有效。",
|
||||
"A perfectly timed running-jumping-spin-punch can kill in a single hit\nand earn you lifelong respect from your friends.": "及時進行跑跳旋轉會打出完美的必殺拳,\n效率高, 而且會令你的朋友尊重你一世。",
|
||||
"Always remember to floss.": "好孩子早晚刷牙,並且要善用牙線。",
|
||||
"Create player profiles for yourself and your friends with\nyour preferred names and appearances instead of using random ones.": "為自己與朋友製作玩家檔案並使用自己的愛稱及外貌,\n相對於隨機名稱更為易辨認。",
|
||||
"Curse boxes turn you into a ticking time bomb.\nThe only cure is to quickly grab a health-pack.": "詛咒之盒把你變成了一個定時炸彈。\n唯一的解決方法是迅速搶佔一個急救包。",
|
||||
"Despite their looks, all characters' abilities are identical,\nso just pick whichever one you most closely resemble.": "儘管長相不同,所有人物的技能是相同的\n所以只需隨意挑選一個與你最相似的。",
|
||||
"Don't get too cocky with that energy shield; you can still get yourself thrown off a cliff.": "不要因為擁有能量盾牌而狂妄自大;你仍然可能使自己墜入懸崖。",
|
||||
"Don't run all the time. Really. You will fall off cliffs.": "不要總是奔跑。真的。你可能會墜入懸崖。",
|
||||
"Don't spin for too long; you'll become dizzy and fall.": "不要旋轉得太久,不然你會眩暈並摔倒。",
|
||||
"Hold any button to run. (Trigger buttons work well if you have them)": "按住任意按鈕來奔跑。(如果你有的話,扳機按鈕將會很有用)",
|
||||
"Hold down any button to run. You'll get places faster\nbut won't turn very well, so watch out for cliffs.": "按住任意按鈕來奔跑。你將會更快地抵達一些地方,\n但是轉彎效果並不好,所以當心懸崖。",
|
||||
"Ice bombs are not very powerful, but they freeze\nwhoever they hit, leaving them vulnerable to shattering.": "冰彈傷害力較低,但具有凍結效果\n被擊中者會無法動彈並變得極易粉碎。",
|
||||
"If someone picks you up, punch them and they'll let go.\nThis works in real life too.": "如果有人將你捉住,出拳攻擊他們,他們便會放手。\n這在現實生活中同樣奏效。",
|
||||
"If you are short on controllers, install the '${REMOTE_APP_NAME}' app\non your mobile devices to use them as controllers.": "如果您缺控制器,在手機上安裝「${REMOTE_APP_NAME}」\n並用手機當控制器。",
|
||||
"If you get a sticky-bomb stuck to you, jump around and spin in circles. You might\nshake the bomb off, or if nothing else your last moments will be entertaining.": "如果一个黏黏弹将你困住,你应该四处跳动并转圈。你可能\n将炸弹抖落,或如果没有其他办法,你最后的时刻将是有趣的。",
|
||||
"If you kill an enemy in one hit you get double points for it.": "如果你一击杀死一个敌人,你将获得双倍积分。",
|
||||
"If you pick up a curse, your only hope for survival is to\nfind a health powerup in the next few seconds.": "如果你捡到一个诅咒之盒,你唯一的生存希望是\n在接下来的几秒内找到一个生命值提升器。",
|
||||
"If you stay in one place, you're toast. Run and dodge to survive..": "如果你停留在一个地方,你就完了。为了生存而奔跑和躲避……",
|
||||
"If you've got lots of players coming and going, turn on 'auto-kick-idle-players'\nunder settings in case anyone forgets to leave the game.": "如果众多玩家进进出出,在设置下打开“自动踢出闲置玩家”,以防\n任何玩家忘记离开游戏。",
|
||||
"If your device gets too warm or you'd like to conserve battery power,\nturn down \"Visuals\" or \"Resolution\" in Settings->Graphics": "如果你的设备过热,或者你想要节省电池电量,\n则在设置->图形中调低“视觉效果”或“分辨率”",
|
||||
"If your framerate is choppy, try turning down resolution\nor visuals in the game's graphics settings.": "如果你的帧速率不稳定,请尝试在游戏的\n图形设置中调低分辨率或视觉效果。",
|
||||
"In Capture-the-Flag, your own flag must be at your base to score, If the other\nteam is about to score, stealing their flag can be a good way to stop them.": "在夺旗战中,你的旗帜必须位于你的基地才能得分,如果对方\n团队即将得分,窃取他们的旗帜是一个不错的阻止方法。",
|
||||
"In hockey, you'll maintain more speed if you turn gradually.": "在冰球战中,逐渐转向将使你保持更快的速度。",
|
||||
"It's easier to win with a friend or two helping.": "在拥有一名好友或两个帮扶的情况下更易获胜",
|
||||
"Jump just as you're throwing to get bombs up to the highest levels.": "就像你试图将炸弹扔到最高点那样跳起来。",
|
||||
"Land-mines are a good way to stop speedy enemies.": "地雷是阻止高速敌人的一个很好的方式。",
|
||||
"Many things can be picked up and thrown, including other players. Tossing\nyour enemies off cliffs can be an effective and emotionally fulfilling strategy.": "很多东西都可以捡起来并投掷,包括其他玩家。将你的\n敌人抛下悬崖可能是一个有效的且情感上可获得满足的策略。",
|
||||
"No, you can't get up on the ledge. You have to throw bombs.": "不,你不能在岩脊上起身。你必须要投掷炸弹",
|
||||
"Players can join and leave in the middle of most games,\nand you can also plug and unplug controllers on the fly.": "玩家可在大多数游戏中途加入或离开,\n同时,你也可以在百忙中插上或拔出手柄。",
|
||||
"Practice using your momentum to throw bombs more accurately.": "练习借助你的力量更准确地投掷炸弹。",
|
||||
"Punches do more damage the faster your fists are moving,\nso try running, jumping, and spinning like crazy.": "拳头跑得越快,拳击的伤害越高,\n所以请成为飞奔的拳击手吧。",
|
||||
"Run back and forth before throwing a bomb\nto 'whiplash' it and throw it farther.": "在投掷炸弹之前来回跑动,\n以“鞭打”炸弹,并将其投掷更远。",
|
||||
"Take out a group of enemies by\nsetting off a bomb near a TNT box.": "在TNT炸药箱附近引爆\n一个炸弹来消灭一群敌人。",
|
||||
"The head is the most vulnerable area, so a sticky-bomb\nto the noggin usually means game-over.": "头部是最脆弱的区域,所以一个黏黏弹\n接触头部通常便意味着游戏结束。",
|
||||
"This level never ends, but a high score here\nwill earn you eternal respect throughout the world.": "这一关卡永远不会结束,但是更高的得分将\n助你赢得全世界永恒的尊重。",
|
||||
"Throw strength is based on the direction you are holding.\nTo toss something gently in front of you, don't hold any direction.": "投掷力量取决于你所保持的方向。\n如要向前方轻轻投掷某物,不要保持在任何方向。",
|
||||
"Tired of the soundtrack? Replace it with your own!\nSee Settings->Audio->Soundtrack": "更换背景音乐?更换成你自己音乐吧!\n参见设置->音频->背景音乐",
|
||||
"Try 'Cooking off' bombs for a second or two before throwing them.": "尝试在投掷之前将炸弹“爆燃”一秒或两秒。",
|
||||
"Try tricking enemies into killing eachother or running off cliffs.": "试图诱使敌人互相厮杀或坠入悬崖。",
|
||||
"Use the pick-up button to grab the flag < ${PICKUP} >": "使用拾取按钮来抢夺旗帜< ${PICKUP} >",
|
||||
"Whip back and forth to get more distance on your throws..": "来回鞭打以投掷更远距离……",
|
||||
"You can 'aim' your punches by spinning left or right.\nThis is useful for knocking bad guys off edges or scoring in hockey.": "你可以通过左转或右转“瞄准”出拳。\n这有利于将坏人击倒出边界或在冰球战中得分。",
|
||||
"You can judge when a bomb is going to explode based on the\ncolor of sparks from its fuse: yellow..orange..red..BOOM.": "你可以根据导火线火花的颜色判断炸弹什么时候爆炸:\n黄色……橙色……红色……嘭。",
|
||||
"You can throw bombs higher if you jump just before throwing.": "如果投弹前跳起,你将投掷更远。",
|
||||
"You take damage when you whack your head on things,\nso try to not whack your head on things.": "当你用头部重击物体时将受到伤害,\n所以尽量不要用头部重击物体。",
|
||||
"Your punches do much more damage if you are running or spinning.": "如果你奔跑或旋转,拳击的伤害将更高。"
|
||||
"If you get a sticky-bomb stuck to you, jump around and spin in circles. You might\nshake the bomb off, or if nothing else your last moments will be entertaining.": "如果一個黏黏彈將你困住,你應該四處跳動並轉圈。你\n有機會將炸彈抖落,或如果沒有其他辦法,你最後的時刻將是有趣的。",
|
||||
"If you kill an enemy in one hit you get double points for it.": "如果你一擊秒殺一個敵人,你將獲得雙倍積分。",
|
||||
"If you pick up a curse, your only hope for survival is to\nfind a health powerup in the next few seconds.": "如果你撿到一個詛咒之盒,你唯一的生存希望是\n在接下來的幾秒內找到一個生命值提升器。",
|
||||
"If you stay in one place, you're toast. Run and dodge to survive..": "如果你停留在一個地方,你就完了。為了生存而奔跑和躲避……",
|
||||
"If you've got lots of players coming and going, turn on 'auto-kick-idle-players'\nunder settings in case anyone forgets to leave the game.": "如果眾多玩家進進出出,在設置下打開“自動踢出閒置玩家”,\n以防任何玩家忘記離開遊戲。",
|
||||
"If your device gets too warm or you'd like to conserve battery power,\nturn down \"Visuals\" or \"Resolution\" in Settings->Graphics": "如果你的設備過熱,或者你想要節省電池電量,\n則在設置->圖形中調低“視覺效果”或“分辨率”",
|
||||
"If your framerate is choppy, try turning down resolution\nor visuals in the game's graphics settings.": "如果你的幀速率不穩定,請嘗試在遊戲的\n圖形設置中調低分辨率或視覺效果。",
|
||||
"In Capture-the-Flag, your own flag must be at your base to score, If the other\nteam is about to score, stealing their flag can be a good way to stop them.": "在奪旗戰中,你的旗幟必須位於你的基地才能得分,\n如果敵隊即將得分,竊取他們的旗幟是一個不錯的阻止方法。",
|
||||
"In hockey, you'll maintain more speed if you turn gradually.": "在冰球戰中,逐漸轉向將使你保持更快的速度。",
|
||||
"It's easier to win with a friend or two helping.": "在擁有一名好友或兩個幫扶的情況下更易獲勝",
|
||||
"Jump just as you're throwing to get bombs up to the highest levels.": "就像你試圖將炸彈扔到最高點那樣跳起來。",
|
||||
"Land-mines are a good way to stop speedy enemies.": "地雷是阻止高速敵人的一個很好的方式。",
|
||||
"Many things can be picked up and thrown, including other players. Tossing\nyour enemies off cliffs can be an effective and emotionally fulfilling strategy.": "很多東西都可以撿起來並投擲,包括其他玩家。將你的\n敵人拋下懸崖可能是一個有效的且情感上可獲得滿足的策略。",
|
||||
"No, you can't get up on the ledge. You have to throw bombs.": "不,你不能在攀上岩脊。你必須要投擲炸彈",
|
||||
"Players can join and leave in the middle of most games,\nand you can also plug and unplug controllers on the fly.": "玩家可在大多數遊戲中途加入或離開,\n同時,你也可以在百忙中插上或拔出手柄。",
|
||||
"Practice using your momentum to throw bombs more accurately.": "練習借助你的力量更準確地投擲炸彈。",
|
||||
"Punches do more damage the faster your fists are moving,\nso try running, jumping, and spinning like crazy.": "拳頭跑得越快,拳擊的傷害越高,\n所以請成為飛奔的拳擊手吧。",
|
||||
"Run back and forth before throwing a bomb\nto 'whiplash' it and throw it farther.": "在投擲炸彈之前來回跑動,\n以“鞭打”炸彈,並將其投擲更遠。",
|
||||
"Take out a group of enemies by\nsetting off a bomb near a TNT box.": "在TNT炸藥箱附近引爆\n一個炸彈來消滅一群敵人。",
|
||||
"The head is the most vulnerable area, so a sticky-bomb\nto the noggin usually means game-over.": "頭部是最脆弱的區域,所以一個黏黏彈\n接觸頭部通常便意味著遊戲結束。",
|
||||
"This level never ends, but a high score here\nwill earn you eternal respect throughout the world.": "這一關卡永遠不會結束,但是更高的\n得分將助你贏得永世之敬畏。",
|
||||
"Throw strength is based on the direction you are holding.\nTo toss something gently in front of you, don't hold any direction.": "投擲力量取決於你所保持的方向。\n如要向前方輕輕投擲某物,不要保持在任何方向。",
|
||||
"Tired of the soundtrack? Replace it with your own!\nSee Settings->Audio->Soundtrack": "不喜歡預設的音樂? 換成自己的音樂吧! \n參見 設置->音頻->背景音樂",
|
||||
"Try 'Cooking off' bombs for a second or two before throwing them.": "嘗試在投擲之前將炸彈“爆燃”一秒或兩秒。",
|
||||
"Try tricking enemies into killing eachother or running off cliffs.": "試圖誘使敵人互相殘殺或墜入懸崖。",
|
||||
"Use the pick-up button to grab the flag < ${PICKUP} >": "使用拾取按鈕來搶奪旗幟< ${PICKUP} >",
|
||||
"Whip back and forth to get more distance on your throws..": "來回鞭打以投擲更遠距離……",
|
||||
"You can 'aim' your punches by spinning left or right.\nThis is useful for knocking bad guys off edges or scoring in hockey.": "你可以通過左轉或右轉“瞄准”出拳。\n這有利於將壞人擊倒出邊界或在冰球戰中得分。",
|
||||
"You can judge when a bomb is going to explode based on the\ncolor of sparks from its fuse: yellow..orange..red..BOOM.": "你可你可以根據導火線火花的顏色判斷炸彈什麼時候爆炸:\n黃色……橙色……紅色……嘭。",
|
||||
"You can throw bombs higher if you jump just before throwing.": "如果投彈前跳起,你將投擲更遠。",
|
||||
"You take damage when you whack your head on things,\nso try to not whack your head on things.": "當你用頭部重擊物體時將受到傷害,\n所以盡量不要用頭部重擊物體。",
|
||||
"Your punches do much more damage if you are running or spinning.": "如果你奔跑或旋轉,拳擊的傷害將更高。"
|
||||
}
|
||||
},
|
||||
"trophiesRequiredText": "你至少要擁有${NUMBER}個獎杯",
|
||||
|
|
@ -1778,46 +1880,48 @@
|
|||
"tutorial": {
|
||||
"cpuBenchmarkText": "以驚人的速度來運行遊戲教程(用於測試CPU上限)",
|
||||
"phrase01Text": "嘿,夥計",
|
||||
"phrase02Text": "歡迎來到${APP_NAME}!",
|
||||
"phrase03Text": "以下適用於此遊戲的一些技巧",
|
||||
"phrase04Text": "${APP_NAME}在很多情況下還是很物理的",
|
||||
"phrase02Text": "歡迎遊玩${APP_NAME}!",
|
||||
"phrase03Text": "以下有一些適用於此遊戲的技巧:",
|
||||
"phrase04Text": "${APP_NAME}在很多情況下是相當講求物理學的。",
|
||||
"phrase05Text": "比如,當你出拳時",
|
||||
"phrase06Text": "拳頭的傷害取決於你它的速度",
|
||||
"phrase07Text": "看到了嗎,如果我們不動,這樣幾乎不會造成傷害${NAME}",
|
||||
"phrase07Text": "看到了嗎?如果我們動也不動,我們幾乎無法傷害${NAME}。",
|
||||
"phrase08Text": "現在,讓我們跳躍並旋轉起來,以獲得更快的速度",
|
||||
"phrase09Text": "啊,這樣就好多了",
|
||||
"phrase09Text": "啊,這樣就好多了。",
|
||||
"phrase10Text": "奔跑也會發揮作用",
|
||||
"phrase11Text": "按住任意按鈕來奔跑",
|
||||
"phrase12Text": "如果要完成一個很棒的出拳,請持續奔跑和旋轉",
|
||||
"phrase13Text": "humm 關於${NAME}我很抱歉",
|
||||
"phrase13Text": "抱歉囉${NAME}, 犧牲是需要的。",
|
||||
"phrase14Text": "你可以撿起投擲物品,如炸彈、旗幟或${NAME}",
|
||||
"phrase15Text": "最後還有炸彈",
|
||||
"phrase15Text": "最後,當然有炸彈",
|
||||
"phrase16Text": "投擲炸彈需要練習",
|
||||
"phrase17Text": "ahh這一次貌似並不漂亮",
|
||||
"phrase17Text": "哎呀,這一次貌似並不漂亮",
|
||||
"phrase18Text": "移動有助於你投擲的更遠",
|
||||
"phrase19Text": "跳躍有助於你投擲的更高",
|
||||
"phrase20Text": "甩炸彈會讓你把炸彈投擲到更遠的位置",
|
||||
"phrase21Text": "把握好時間可能會十分困難",
|
||||
"phrase22Text": "¿",
|
||||
"phrase22Text": "我呸。",
|
||||
"phrase23Text": "嘗試將導火線控制的更加精準",
|
||||
"phrase24Text": "OHHHHH爆炸就是藝術",
|
||||
"phrase25Text": "OK已經很不錯了",
|
||||
"phrase26Text": "現在去完成你的任務吧,兄弟",
|
||||
"phrase27Text": "記住你的訓練,你會活著回來的",
|
||||
"phrase28Text": "也許...是吧",
|
||||
"phrase29Text": "祝你好運",
|
||||
"randomName1Text": "Fred",
|
||||
"randomName2Text": "Harry",
|
||||
"randomName3Text": "Bill",
|
||||
"randomName4Text": "Chuck",
|
||||
"randomName5Text": "Phil",
|
||||
"phrase24Text": "OHHHHH爆炸就是藝術!!!",
|
||||
"phrase25Text": "OK, 教程來到這裏差不多了。",
|
||||
"phrase26Text": "現在去完成你的任務吧,兄弟!",
|
||||
"phrase27Text": "記住你的訓練,你會活著回來的!",
|
||||
"phrase28Text": "應該會...吧",
|
||||
"phrase29Text": "祝你好運 :)",
|
||||
"randomName1Text": "弗雷迪",
|
||||
"randomName2Text": "哈利",
|
||||
"randomName3Text": "比爾",
|
||||
"randomName4Text": "查克",
|
||||
"randomName5Text": "菲利浦",
|
||||
"skipConfirmText": "確定要跳過教程?再次按下按鈕來確定",
|
||||
"skipVoteCountText": "${COUNT}/${TOTAL} 跳過投票",
|
||||
"skippingText": "跳過教程...",
|
||||
"toSkipPressAnythingText": "(按下任意鍵來跳過教程)"
|
||||
},
|
||||
"twoKillText": "雙殺!",
|
||||
"uiScaleText": "介面大小",
|
||||
"unavailableText": "不可用",
|
||||
"unclaimedPrizesText": "您有無人領會的獎品!",
|
||||
"unconfiguredControllerDetectedText": "檢測到未配置的手柄",
|
||||
"unlockThisInTheStoreText": "這必須從商店解鎖",
|
||||
"unlockThisProfilesText": "如需創建超過${NUM}個檔案,你需要",
|
||||
|
|
@ -1830,9 +1934,12 @@
|
|||
"upgradeText": "升級",
|
||||
"upgradeToPlayText": "你必須在商店裡解鎖${PRO}以體驗此內容",
|
||||
"useDefaultText": "使用默認值",
|
||||
"userSystemScriptsCreateText": "創建用家自訂程式碼",
|
||||
"userSystemScriptsDeleteText": "拆除用家自訂程式碼",
|
||||
"usesExternalControllerText": "該遊戲使用外部手柄進行接入",
|
||||
"usingItunesText": "使用音樂軟件設置背景音樂...",
|
||||
"v2AccountLinkingInfoText": "要鏈接 V2 帳戶,請使用“管理帳戶”按鈕。",
|
||||
"v2AccountRequiredText": "此需要V2帳戶。請更新帳戶後再試。",
|
||||
"validatingTestBuildText": "測試版驗證中",
|
||||
"viaText": "其他賬戶",
|
||||
"victoryText": "勝利!",
|
||||
|
|
@ -1899,5 +2006,6 @@
|
|||
},
|
||||
"yesAllowText": "是的,允許!",
|
||||
"yourBestScoresText": "最佳分數",
|
||||
"yourBestTimesText": "最佳時間"
|
||||
"yourBestTimesText": "最佳時間",
|
||||
"yourPrizeText": "獎勵:"
|
||||
}
|
||||
39
dist/ba_data/data/languages/croatian.json
vendored
39
dist/ba_data/data/languages/croatian.json
vendored
|
|
@ -7,7 +7,9 @@
|
|||
"campaignProgressText": "Napredak kampanje[Teško]: ${PROGRESS}",
|
||||
"changeOncePerSeason": "Ovo možeš promjeniti samo jednom po sezoni.",
|
||||
"changeOncePerSeasonError": "Moraš pričekati sljedeču sezonu da promjeniš ovo(${NUM} days)",
|
||||
"createAnAccountText": "Napravi racun",
|
||||
"customName": "Prilagođeno ime",
|
||||
"deleteAccountText": "Izbriši račun",
|
||||
"googlePlayGamesAccountSwitchText": "Ako želite koristiti drugi Google račun,\nidite u aplikaciju Google Play Igre za promijeniti račun.",
|
||||
"linkAccountsEnterCodeText": "Unesi kod",
|
||||
"linkAccountsGenerateCodeText": "Stvori kod",
|
||||
|
|
@ -25,6 +27,7 @@
|
|||
"setAccountNameDesc": "Odaberi koje ime da se prikaže za tvoj račun.\nMožeš koristiti ime jednog od tvojih povezanih računa\nili kreirati vlastito prilagođeno ime.",
|
||||
"signInInfoText": "Prijavi se da možeš dobivati kupone, natjecati\nse online, i dijeliti napredak između uređaja.",
|
||||
"signInText": "Prijavi se",
|
||||
"signInWithAnEmailAddressText": "Uloguj se sa email adresom",
|
||||
"signInWithDeviceInfoText": "(automatski profil dostupan samo na ovom uređaju)",
|
||||
"signInWithDeviceText": "Prijavi se sa profilom uređaja",
|
||||
"signInWithGameCircleText": "Prijavi se sa Game Circle",
|
||||
|
|
@ -337,10 +340,12 @@
|
|||
"getMoreGamesText": "Još igara...",
|
||||
"titleText": "Dodaj igru"
|
||||
},
|
||||
"addToFavoritesText": "Dodaj u omiljene",
|
||||
"allText": "Sve",
|
||||
"allowText": "Dopusti",
|
||||
"alreadySignedInText": "Tvoj akaunt je prijavljen sa drugog uredjaja;\nmolimo promenite akaunt ili zatvori igru na\ntvom drugom uredjaju i probaj opet.",
|
||||
"apiVersionErrorText": "Nemoguće je učitati modul ${NAME}; napravljen je za ${VERSION_USED} verziju aplikacije; potrebna je verzija ${VERSION_REQUIRED}.",
|
||||
"areYouSureText": "Dali si siguran?",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(\"Automatski\" omogućuje ovo samo kad su slušalice priključene)",
|
||||
"headRelativeVRAudioText": "VR relativni zvuk",
|
||||
|
|
@ -370,6 +375,9 @@
|
|||
"chatMuteText": "Stišaj Chat",
|
||||
"chatMutedText": "Chat Stišan",
|
||||
"chatUnMuteText": "Upali Chat",
|
||||
"chests": {
|
||||
"reduceWaitText": "Skrati cekanje"
|
||||
},
|
||||
"choosingPlayerText": "<odabir igrača>",
|
||||
"completeThisLevelToProceedText": "Moraš završiti ovu\nrazinu da nastaviš!",
|
||||
"completionBonusText": "Završni bonus",
|
||||
|
|
@ -553,6 +561,7 @@
|
|||
"demoText": "Demo",
|
||||
"denyText": "Odbij",
|
||||
"deprecatedText": "Zastareno",
|
||||
"descriptionText": "Diskripcija",
|
||||
"desktopResText": "Desktop rezolucija",
|
||||
"deviceAccountUpgradeText": "Upozorenje:\nPrijavljeni ste s uređajnim računom\n(${NAME}).\nUređajni računi će biti izbrisani u budućem ažuriranju.",
|
||||
"difficultyEasyText": "Lagano",
|
||||
|
|
@ -564,6 +573,7 @@
|
|||
"disableXInputDescriptionText": "Dozvoljava više od 4 kontrolera ali možda neće raditi dobro.",
|
||||
"disableXInputText": "Isključi XInput",
|
||||
"disabledText": "Deaktiviraj",
|
||||
"discordJoinText": "Pridruzi se diskordu",
|
||||
"doneText": "Gotovo",
|
||||
"drawText": "Neriješeno",
|
||||
"duplicateText": "Dupliciraj",
|
||||
|
|
@ -597,6 +607,7 @@
|
|||
"localProfileText": "(Lokalni profil)",
|
||||
"nameDescriptionText": "Ime Igrača",
|
||||
"nameText": "Ime",
|
||||
"profileAlreadyExistsText": "Profil sa tim imenom već postoji",
|
||||
"randomText": "nasumično",
|
||||
"titleEditText": "Uredi Profil",
|
||||
"titleNewText": "Novi Profil",
|
||||
|
|
@ -750,6 +761,7 @@
|
|||
"manualYourLocalAddressText": "Tvoja lokalna adresa:",
|
||||
"nearbyText": "Blizu",
|
||||
"noConnectionText": "<nema veze>",
|
||||
"noPartiesAddedText": "Nema zurki dodanih",
|
||||
"otherVersionsText": "(druge verzije)",
|
||||
"partyCodeText": "Grupna šifra",
|
||||
"partyInviteAcceptText": "Prihvati",
|
||||
|
|
@ -815,6 +827,12 @@
|
|||
"youHaveShortText": "imaš ${COUNT}",
|
||||
"youHaveText": "imaš ${COUNT} kupona"
|
||||
},
|
||||
"goldPass": {
|
||||
"desc1InfTokensText": "Beskonacno tokena",
|
||||
"desc2NoAdsText": "Nema reklama",
|
||||
"desc3ForeverText": "Zauvjek.",
|
||||
"goldPassText": "Zlatna propusnica"
|
||||
},
|
||||
"googleMultiplayerDiscontinuedText": "Oprostite, Google Play Games servis za partije u igrama više ne postoji.\nTrenutno radim na zamjeni što je brže moguće.\nTo tada, priključujte se u partije na druge načine.\n-Eric",
|
||||
"googlePlayPurchasesNotAvailableText": "Google Play kupnje nisu dostupne.\nMožda ćete trebati ažurirati svoju trgovinu aplikacija.",
|
||||
"googlePlayServicesNotAvailableText": "Google Play Services nije dostupan.\nNeke funkcionalnosti aplikacije mogu biti isključene.",
|
||||
|
|
@ -823,6 +841,7 @@
|
|||
"alwaysText": "Uvijek",
|
||||
"fullScreenCmdText": "Cijeli ekran (Cmd-F)",
|
||||
"fullScreenCtrlText": "Cijeli ekran (Ctrl-F)",
|
||||
"fullScreenText": "Puni zaslon",
|
||||
"gammaText": "Svjetlina(Gamma)",
|
||||
"highText": "Visoko",
|
||||
"higherText": "Više",
|
||||
|
|
@ -1066,13 +1085,16 @@
|
|||
"noContinuesText": "(bez nastavaka)",
|
||||
"noExternalStorageErrorText": "Vanjska pohrana nije pronađena",
|
||||
"noGameCircleText": "Greška: nisi prijavljen u GameCircle",
|
||||
"noMessagesText": "Nema poruka.",
|
||||
"noProfilesErrorText": "Nemaš profila igrača, pa ti je samo ime '${NAME}' na raspolaganju. \nPođi pod Postavke->Profili igrača da sebi napraviš profil. ",
|
||||
"noScoresYetText": "Još nema rezultata.",
|
||||
"noServersFoundText": "Nema nađenih servera.",
|
||||
"noThanksText": "Ne hvala",
|
||||
"noTournamentsInTestBuildText": "UPOZORENJE: Turnirski bodovi od ove test gradnje će biti ignorirani.",
|
||||
"noValidMapsErrorText": "Nijedna ispravna mapa nije pronađena za ovu igru.",
|
||||
"notEnoughPlayersRemainingText": "Nije ostalo dovoljno igrača; iziđi i započni novu igru.",
|
||||
"notEnoughPlayersText": "Trebaš najmanje ${COUNT} igrača da započneš ovu igru!",
|
||||
"notEnoughTicketsText": "Nemaš dovoljno kupona!",
|
||||
"notNowText": "Ne sad",
|
||||
"notSignedInErrorText": "Moraš se prijaviti da uradiš ovo.",
|
||||
"notSignedInGooglePlayErrorText": "Moraš se ulogovati preko Google pleja da uradiš ovo.",
|
||||
|
|
@ -1085,6 +1107,9 @@
|
|||
"onText": "Uključeno",
|
||||
"oneMomentText": "Jedan trenutak...",
|
||||
"onslaughtRespawnText": "${PLAYER} će se ponovno pojaviti u naletu ${WAVE}",
|
||||
"openMeText": "Otvori me!",
|
||||
"openNowText": "Otvori sada",
|
||||
"openText": "Otvori",
|
||||
"orText": "${A} ili ${B}",
|
||||
"otherText": "Drugo...",
|
||||
"outOfText": "(#${RANK} od ${ALL})",
|
||||
|
|
@ -1390,10 +1415,15 @@
|
|||
"tipText": "Savjet",
|
||||
"titleText": "BombSquad",
|
||||
"titleVRText": "BombSquad VR",
|
||||
"tokens": {
|
||||
"getTokensText": "Nabavi tokene",
|
||||
"notEnoughTokensText": "Nemas dovoljno tokena!"
|
||||
},
|
||||
"topFriendsText": "Prijatelji s najboljim rezultatima",
|
||||
"tournamentCheckingStateText": "Provjeravam stanje turnira; molim pričekaj...",
|
||||
"tournamentEndedText": "Ovaj turnir je završio. Novi će započeti ubrzo.",
|
||||
"tournamentEntryText": "Kotizacija",
|
||||
"tournamentFinalStandingsText": "Finalna rijesenja",
|
||||
"tournamentResultsRecentText": "Nedavni Rezultati turnira",
|
||||
"tournamentStandingsText": "Poredak",
|
||||
"tournamentText": "Turnir",
|
||||
|
|
@ -1637,6 +1667,7 @@
|
|||
"Max number of profiles reached.": "Max broj dosegao profila.",
|
||||
"Maximum friend code rewards reached.": "Maksimalne nagrade od prijateljskih kodova dostignute.",
|
||||
"Message is too long.": "Poruka je prevelika.",
|
||||
"New tournament result!": "Novi rezultat turnira!",
|
||||
"No servers are available. Please try again soon.": "Nema dostupnih servera. Pokušajte opet kasnije.",
|
||||
"Profile \"${NAME}\" upgraded successfully.": "Profil \"${NAME}\" uspjesno upgrajdovan",
|
||||
"Profile could not be upgraded.": "Profil se ne može ažurirati.",
|
||||
|
|
@ -1873,15 +1904,15 @@
|
|||
"titleText": "DarwiinRemote Copyright"
|
||||
},
|
||||
"wiimoteListenWindow": {
|
||||
"listeningText": "Tražim Wiimote-ove...",
|
||||
"pressText": "Pritisni Wiimote tipke 1 i 2 istovremeno.",
|
||||
"pressText2": "Na novijim Wiimote-ovima s ugrađenim Motion Plus-om, umjesto njih pritisni crvenu 'sync' tipku na poleđini."
|
||||
"listeningText": "Tražim Wiimote-ove... ",
|
||||
"pressText": "Pritisni Wiimote tipke 1 i 2 istovremeno. ",
|
||||
"pressText2": "Na novijim Wiimote-ovima s ugrađenim Motion Plus-om, umjesto njih pritisni crvenu 'sync' tipku na poleđini. "
|
||||
},
|
||||
"wiimoteSetupWindow": {
|
||||
"copyrightText": "DarwiinRemote Copyright",
|
||||
"listenText": "Traži",
|
||||
"macInstructionsText": "Provjeri da je tvoj Wii isključen, a Bluetooth uključen\nna tvome Macu, pa pritisni 'Traži'. Podrška za Wiimote-ove\nmože biti malo nestabilna, pa ćeš možda morati pokušati nekoliko puta\nprije nego što uspostaviš vezu.\n\nBluetooth bi trebao podržati do 7 povezanih uređaja,\nmada bi tvoja udaljenost mogla varirati.\n\nBombSquad podržava originalne Wiimote-ove, Nunchuk-ove,\ni Classic Controller.\nNoviji Wii Remote Plus sada radi,\nali ne s dodacima.",
|
||||
"thanksText": "Hvala DarwiinRemote timu\nšto je ovo omogućio.",
|
||||
"thanksText": "Hvala DarwiinRemote timu\nšto je ovo omogućio. ",
|
||||
"titleText": "Podešavanje Wiimote-ova"
|
||||
},
|
||||
"winsPlayerText": "${NAME} pobjeđuje!",
|
||||
|
|
|
|||
99
dist/ba_data/data/languages/czech.json
vendored
99
dist/ba_data/data/languages/czech.json
vendored
|
|
@ -7,7 +7,9 @@
|
|||
"campaignProgressText": "Postup kampaně [Těžká]: ${PROGRESS}",
|
||||
"changeOncePerSeason": "Lze změnit pouze jednou za sezónu.",
|
||||
"changeOncePerSeasonError": "Chcete-li toto změnit znovu, musíte počkat na další sezónu (${NUM} days)",
|
||||
"createAnAccountText": "Založit účet",
|
||||
"customName": "Vlastní jméno",
|
||||
"deleteAccountText": "Smazat Účet",
|
||||
"googlePlayGamesAccountSwitchText": "Pokud chcete použít jiný Google účet,\npoužijte pro změnu aplikaci Google Play Hry.",
|
||||
"linkAccountsEnterCodeText": "Vložit kód",
|
||||
"linkAccountsGenerateCodeText": "Generovat kód",
|
||||
|
|
@ -35,7 +37,7 @@
|
|||
"signInWithTestAccountText": "Přihlásit se s testovacím účtem",
|
||||
"signInWithText": "Přihlásit se s ${SERVICE}",
|
||||
"signInWithV2InfoText": "(účet který funguje na všech platformách)",
|
||||
"signInWithV2Text": "Přihlášení s BombSquad účtem",
|
||||
"signInWithV2Text": "Přihlášení s ${APP_NAME} účtem",
|
||||
"signOutText": "Odhlásit se",
|
||||
"signingInText": "Přihlašuji se...",
|
||||
"signingOutText": "Odhlašuji se...",
|
||||
|
|
@ -347,6 +349,8 @@
|
|||
"allowText": "Povolit",
|
||||
"alreadySignedInText": "Tento účet je používán v jiném zařízení;\npřepněte prosím účet nebo v druhém\nzařízení hru zavřete, poté to zkuste znova.",
|
||||
"apiVersionErrorText": "Nelze načíst modul ${NAME}; je vytvořen pro API verze ${VERSION_USED}; je potřeba ${VERSION_REQUIRED}.",
|
||||
"applyText": "Použít",
|
||||
"areYouSureText": "Jste si jistí?",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(\"Auto\" zapněte pouze když jsou připojeny sluchátka)",
|
||||
"headRelativeVRAudioText": "Head-Relative VR Audio",
|
||||
|
|
@ -371,14 +375,23 @@
|
|||
"boostText": "Zrychlit",
|
||||
"bsRemoteConfigureInAppText": "${REMOTE_APP_NAME} je nastaven v aplikaci sám.",
|
||||
"buttonText": "tlačitko",
|
||||
"canWeDebugText": "Chtěli byste, aby BombSquad automaticky hlásil \nchyby, pády a základní info o používání vývojáři?\n\nTato data neobsahují žádné osobní informace a napomáhají,\naby hra běžela hladce a bez chyb.",
|
||||
"canWeDebugText": "Chtěli byste, aby ${APP_NAME} automaticky hlásil \nchyby, pády a základní info o používání vývojáři?\n\nTato data neobsahují žádné osobní informace a napomáhají,\naby hra běžela hladce a bez chyb.",
|
||||
"cancelText": "Zrušit",
|
||||
"cantConfigureDeviceText": "Omlouváme se, ale ${DEVICE} není nastavitelné",
|
||||
"challengeEndedText": "Tato výzva již skončila.",
|
||||
"chatMuteText": "Ztlumit Chat",
|
||||
"chatMutedText": "Chat ztlumen",
|
||||
"chatUnMuteText": "Obnovit chat",
|
||||
"chests": {
|
||||
"prizeOddsText": "Šance na výhru",
|
||||
"reduceWaitText": "Zkrať čekání",
|
||||
"slotDescriptionText": "Toto je místo pro truhlu.\n\nTruhly lze získat hraním kampaně,\numístěním v turnajích a získáním\ntrofejí.",
|
||||
"slotText": "Místo pro truhlu ${NUM}",
|
||||
"slotsFullWarningText": "VAROVÁNÍ: Všechna místa pro truhly jsou obsazená.\nV této hře ztrácíte možnost získat další truhlu.",
|
||||
"unlocksInText": "Otevře se Za"
|
||||
},
|
||||
"choosingPlayerText": "<vybírá hráče>",
|
||||
"claimText": "Získat",
|
||||
"codesExplainText": "Kódy jsou zřizovány vývojářem za účelem\ndiagnózy a opravy problémů s účty.",
|
||||
"completeThisLevelToProceedText": "Musíte dokončit\ntento level, abyste mohli pokračovat!",
|
||||
"completionBonusText": "Bonus za dokončení",
|
||||
|
|
@ -575,6 +588,7 @@
|
|||
"disableXInputDescriptionText": "Povolí více než 4 ovladače, ale nemusí fungovat tak dobře.",
|
||||
"disableXInputText": "Vypnout XInput",
|
||||
"disabledText": "Zakázáno",
|
||||
"discardText": "Zbavit se",
|
||||
"discordFriendsText": "Chcete najít nové lidi na hraní?\nPřipojte se k našemu Discordu a najděte nové přátele!",
|
||||
"discordJoinText": "Připoj se k Discordu",
|
||||
"doneText": "Hotovo",
|
||||
|
|
@ -659,6 +673,8 @@
|
|||
"errorText": "Chyba",
|
||||
"errorUnknownText": "neznámá chyba",
|
||||
"exitGameText": "Ukončit ${APP_NAME}?",
|
||||
"expiredAgoText": "Vypršel před ${T}",
|
||||
"expiresInText": "Vyprší za ${T}",
|
||||
"exportSuccessText": "„${NAME}“ úspěšně exportován.",
|
||||
"externalStorageText": "Externí úložiště",
|
||||
"failText": "Neúspěch",
|
||||
|
|
@ -721,6 +737,7 @@
|
|||
"copyCodeConfirmText": "Kód zkopírován do schránky",
|
||||
"copyCodeText": "Zkopírovat kód",
|
||||
"dedicatedServerInfoText": "Pro dosažení nejlepších výsledků nastavte dedikovaný server.\nZjistěte více na bombsquadgame.com/server",
|
||||
"descriptionShortText": "K založení party použijte okno Klubovna.",
|
||||
"disconnectClientsText": "Tímto se odpojí ${COUNT} hráč/ů\nve Vaší partě. Jste si jisti?",
|
||||
"earnTicketsForRecommendingAmountText": "Přátelé získají ${COUNT} tiketů když zkusí tuto hru\n(a ty získáš ${YOU_COUNT} za každého, kdo to udělá)",
|
||||
"earnTicketsForRecommendingText": "Sdílet hru\nza kupóny zdarma...",
|
||||
|
|
@ -833,6 +850,12 @@
|
|||
"youHaveShortText": "Máte ${COUNT}",
|
||||
"youHaveText": "Máte ${COUNT} kupónů"
|
||||
},
|
||||
"goldPass": {
|
||||
"desc1InfTokensText": "Nekonečně tokenů.",
|
||||
"desc2NoAdsText": "Žádné reklamy.",
|
||||
"desc3ForeverText": "Navždy.",
|
||||
"goldPassText": "Gold Pass"
|
||||
},
|
||||
"googleMultiplayerDiscontinuedText": "Omlouvám se, služba pro více hráčů Google již není k dispozici.\nPracuji co nejrychleji na výměně.\nDo té doby zkuste jiný způsob připojení.\n- Eric",
|
||||
"googlePlayPurchasesNotAvailableText": "Nákupy na Google Play nejsou k dispozici.\nMožná budete muset aktualizovat Obchod Play.",
|
||||
"googlePlayServicesNotAvailableText": "Služby Google Play nejsou dostupné.\nNěkteré funkce mohou být zakázány.",
|
||||
|
|
@ -907,6 +930,7 @@
|
|||
"importText": "Importovat",
|
||||
"importingText": "Probíhá importování...",
|
||||
"inGameClippedNameText": "Ve hře bude vidět jako\n„${NAME}“",
|
||||
"inboxText": "Pošta",
|
||||
"installDiskSpaceErrorText": "CHYBA: Není možné dokončit instalaci.\nMožná nemáte dostatek volného místa na Vašem zařízení.\nUvolněte nějaké místo a zkuste to znovu.",
|
||||
"internal": {
|
||||
"arrowsToExitListText": "stiskněte ${LEFT} nebo ${RIGHT} pro opuštění seznamu",
|
||||
|
|
@ -961,12 +985,14 @@
|
|||
"timeOutText": "(vyprší za ${TIME} sekund)",
|
||||
"touchScreenJoinWarningText": "Připojili jste se s dotykovou obrazovkou.\nJestli je toto omylem, klepněte na Menu->Opustit hru.",
|
||||
"touchScreenText": "Dotyková obrazovka",
|
||||
"unableToCompleteTryAgainText": "Toto nebylo možné nyní dokončit.\nZkuste to prosím znovu.",
|
||||
"unableToResolveHostText": "Chyba: Nezdařilo se spojit s hostitelem",
|
||||
"unavailableNoConnectionText": "Toto je momentálně nedostupné (žádné internetové připojení?)",
|
||||
"vrOrientationResetCardboardText": "Použitjte pro reset orientace ve VR.\nPro hraní hry budete potřebovat externí ovladač.",
|
||||
"vrOrientationResetText": "VR orientace resetována.",
|
||||
"willTimeOutText": "(vyprší, když je neaktivní)"
|
||||
},
|
||||
"inventoryText": "Inventář",
|
||||
"jumpBoldText": "SKOK",
|
||||
"jumpText": "Skok",
|
||||
"keepText": "Zachovat",
|
||||
|
|
@ -1013,8 +1039,11 @@
|
|||
"seasonEndsMinutesText": "Sezóna končí za ${NUMBER} minut.",
|
||||
"seasonText": "Sezóna ${NUMBER}",
|
||||
"tournamentLeagueText": "Musíte být v lize ${NAME}, abyste se mohli zúčastnit tohoto turnaje.",
|
||||
"trophyCountsResetText": "Počet pohárů se resetuje příští sezónu."
|
||||
"trophyCountsResetText": "Počet pohárů se resetuje příští sezónu.",
|
||||
"upToDateBonusDescriptionText": "Hráči, kteří hrají aktuální verzi této\nhry získají ${PERCENT}% bonus.",
|
||||
"upToDateBonusText": "Aktualizační bonus"
|
||||
},
|
||||
"learnMoreText": "Zjistit Více",
|
||||
"levelBestScoresText": "Nejlepší skóre na ${LEVEL}",
|
||||
"levelBestTimesText": "Nejlepší čas na ${LEVEL}",
|
||||
"levelFastestTimesText": "Nejrychleji v ${LEVEL}",
|
||||
|
|
@ -1060,6 +1089,8 @@
|
|||
"modeArcadeText": "Arkádový mód",
|
||||
"modeClassicText": "Klasický mód",
|
||||
"modeDemoText": "Ukázkový mód",
|
||||
"moreSoonText": "Další již brzy ...",
|
||||
"mostDestroyedPlayerText": "Nejvíce rozdrcený hráč",
|
||||
"mostValuablePlayerText": "Nejcennější hráč",
|
||||
"mostViolatedPlayerText": "Nejvíce obětovaný hráč",
|
||||
"mostViolentPlayerText": "Nejnásilnější hráč",
|
||||
|
|
@ -1076,6 +1107,7 @@
|
|||
"nameSuicideText": "${NAME} páchá sebevraždu.",
|
||||
"nameText": "Jméno",
|
||||
"nativeText": "Nativní",
|
||||
"newExclaimText": "Nově!",
|
||||
"newPersonalBestText": "Nový osobní rekord!",
|
||||
"newTestBuildAvailableText": "Novější testovací build je dostupný! (${VERSION} build ${BUILD}).\nZískejte ho na ${ADDRESS}",
|
||||
"newText": "Nový",
|
||||
|
|
@ -1086,6 +1118,7 @@
|
|||
"noContinuesText": "(bez pokračování)",
|
||||
"noExternalStorageErrorText": "Žádné externí úložiště nebylo na tomto zařízení nalezeno",
|
||||
"noGameCircleText": "Chyba: nejste přihlášeni do Game Circle",
|
||||
"noMessagesText": "Žádné zprávy.",
|
||||
"noPluginsInstalledText": "Nenainstalovány žádné pluginy",
|
||||
"noProfilesErrorText": "Nemáte žádné herní profily, takže Vám bylo podstrčeno jméno '${NAME}'.\nJděte do Nastavení->Herní Profily pro vytvoření svého profilu.",
|
||||
"noScoresYetText": "Zatím žádné výsledky.",
|
||||
|
|
@ -1095,6 +1128,7 @@
|
|||
"noValidMapsErrorText": "Nebyly nalezeny žádné platné mapy pro tento typ hry.",
|
||||
"notEnoughPlayersRemainingText": "Zbývá nedostatečný počet hráčů; ukončete a začněte novou hru",
|
||||
"notEnoughPlayersText": "Potřebujete nejméně ${COUNT} hráčů pro spuštění této hry!",
|
||||
"notEnoughTicketsText": "Nedostatek ticketů!",
|
||||
"notNowText": "Teď ne",
|
||||
"notSignedInErrorText": "Pro tuto akci se musíte přihlásit",
|
||||
"notSignedInGooglePlayErrorText": "Pro tuto akci se musíte přihlásit přes Google Play",
|
||||
|
|
@ -1107,6 +1141,9 @@
|
|||
"onText": "Zap",
|
||||
"oneMomentText": "Chvilku strpení...",
|
||||
"onslaughtRespawnText": "${PLAYER} se oživí ve vlně ${WAVE}",
|
||||
"openMeText": "Otevři Mě!",
|
||||
"openNowText": "Otevřte hned",
|
||||
"openText": "Otevřít",
|
||||
"orText": "${A} nebo ${B}",
|
||||
"otherText": "Ostatní...",
|
||||
"outOfText": "(#${RANK} z ${ALL})",
|
||||
|
|
@ -1194,6 +1231,8 @@
|
|||
"punchText": "Praštit",
|
||||
"purchaseForText": "Koupit za ${PRICE}",
|
||||
"purchaseGameText": "Zakoupit hru",
|
||||
"purchaseNeverAvailableText": "Bohužel, transakce nejsou dostupné na této sestavě.\nZkuste přihlásit svůj účet na jiné platformě a na ní provést nákup.",
|
||||
"purchaseNotAvailableText": "Tento nákup není dostupný.",
|
||||
"purchasingText": "Probíhá transakce...",
|
||||
"quitGameText": "Ukončit ${APP_NAME}?",
|
||||
"quittingIn5SecondsText": "Ukončuji za 5 sekund...",
|
||||
|
|
@ -1235,6 +1274,7 @@
|
|||
"version_mismatch": "Neshoda verzí.\nUjistěte se, že BombSquad a BombSquad Ovladač\njsou aktualizované na poslední verzi, a zkuste to znovu."
|
||||
},
|
||||
"removeInGameAdsText": "Odemkněte „${PRO}“ v obchodě pro odstranění reklam ve hře.",
|
||||
"removeInGameAdsTokenPurchaseText": "LIMITOVANÁ NABÍDKA: Zakoupením JAKÉHOKOLI balíčku tokenů odstraníte reklamy.",
|
||||
"renameText": "Přejmenovat",
|
||||
"replayEndText": "Ukončit Záznam",
|
||||
"replayNameDefaultText": "Záznam Poslední Hry",
|
||||
|
|
@ -1296,6 +1336,8 @@
|
|||
"enterPromoCodeText": "Zadat kód",
|
||||
"forTestingText": "Poznámka: Tyto hodnoty sou pouze pro test. Obnoví se po restartu.",
|
||||
"helpTranslateText": "Jiné než anglické verze ${APP_NAME} jsou komunitně\npodporovanou záležitostí. Pokud byste chtěli přidat\nnebo opravit překlad, následujte odkaz níže. Předem děkujeme!",
|
||||
"insecureConnectionsDescriptionText": "není doporučeno, ale může povolit online hru\n v zakázaných zemích nebo sítích",
|
||||
"insecureConnectionsText": "Použít nezabezpečené připojení",
|
||||
"kickIdlePlayersText": "Vykopnout neaktivní hráče",
|
||||
"kidFriendlyModeText": "Dětský mód (snížené násilí, atd.)",
|
||||
"languageText": "Jazyk",
|
||||
|
|
@ -1356,6 +1398,7 @@
|
|||
},
|
||||
"spaceKeyText": "mezera",
|
||||
"statsText": "Statistiky",
|
||||
"stopRemindingMeText": "Dále Nepřipomínat",
|
||||
"storagePermissionAccessText": "Toto vyžaduje přístup k úložišti",
|
||||
"store": {
|
||||
"alreadyOwnText": "Už vlastníš ${NAME}!",
|
||||
|
|
@ -1369,7 +1412,7 @@
|
|||
"extrasText": "Bonusy",
|
||||
"freeBombSquadProText": "BombSquad je nyní zdarma, ale pokud jste si ho dříve zakoupili,\ndostáváte BombSquad Pro upgrade a ${COUNT} kupónů jako poděkování.\nUžijte si nové možnosti a díky za podporu!\n- Eric",
|
||||
"gameUpgradesText": "Vylepšení hry",
|
||||
"holidaySpecialText": "Vánoční speciál",
|
||||
"holidaySpecialText": "Sváteční Speciál",
|
||||
"howToSwitchCharactersText": "(jděte do ${SETTINGS} -> ${PLAYER_PROFILES} k použití nebo úpravě postav)",
|
||||
"howToUseIconsText": "(vytvořte si globální herní účet (v okně účtů) abyste je mohli použít)",
|
||||
"howToUseMapsText": "(použijte tyto mapy ve vlastních týmových/všichni proti všem seznamech)",
|
||||
|
|
@ -1417,6 +1460,7 @@
|
|||
"testBuildValidatedText": "Testovací build Ověřen; Užívejte!",
|
||||
"thankYouText": "Děkujeme Vám za podporu! Užijte si hru!!",
|
||||
"threeKillText": "TŘI ZABITÍ!!!",
|
||||
"ticketsDescriptionText": "Kupóny mohou být použity na odemykání postav,\nmap, miniher a mnoho dalšího v obchodě.\n\nKupóny lze nalézt v truhlách vyhraných díky\nkampaním, turnajům a trofejím.",
|
||||
"timeBonusText": "Časový bonus",
|
||||
"timeElapsedText": "Uplynulý čas",
|
||||
"timeExpiredText": "Čas vypršel",
|
||||
|
|
@ -1427,10 +1471,24 @@
|
|||
"tipText": "Tip",
|
||||
"titleText": "BombSquad",
|
||||
"titleVRText": "BombSquad VR",
|
||||
"tokens": {
|
||||
"getTokensText": "Získat Tokeny",
|
||||
"notEnoughTokensText": "Nedostatek tokenů!",
|
||||
"numTokensText": "${COUNT} Tokenů",
|
||||
"openNowDescriptionText": "Máte dostatek tokenů na \nOtevření nyní - Netřeba\nčekat.",
|
||||
"shinyNewCurrencyText": "Nová blištivá měna BombSquadu.",
|
||||
"tokenPack1Text": "Malý Tokenový Balíček",
|
||||
"tokenPack2Text": "Střední Tokenový Balíček",
|
||||
"tokenPack3Text": "Velký Tokenový Balíček",
|
||||
"tokenPack4Text": "Obrovský Tokenový Balíček",
|
||||
"tokensDescriptionText": "Tokeny se používají na urychlení odemykání\ntruhel a na další funkce hry a účtu.\n\nTokeny můžete vyhrát ve hře nebo si je zakoupit\nv balíčcích. Nebo si můžete koupit Gold Pass pro\nnekonečný počet tokenů a nemusíte se o ně starat.",
|
||||
"youHaveGoldPassText": "Vlastníte Gold Pass.\nVšechny nákupy za tokeny jsou zdarma.\nUžívejte!"
|
||||
},
|
||||
"topFriendsText": "Nejlepší přátelé",
|
||||
"tournamentCheckingStateText": "Zjišťuji stav turnaje; chvilku strpení...",
|
||||
"tournamentEndedText": "Tento turnaj již skončil. Brzy ale začne další.",
|
||||
"tournamentEntryText": "Vstup do turnaje",
|
||||
"tournamentFinalStandingsText": "Konečné umístění",
|
||||
"tournamentResultsRecentText": "Výsledky předchozích turnajů",
|
||||
"tournamentStandingsText": "Pořadí v turnaji",
|
||||
"tournamentText": "Turnaj",
|
||||
|
|
@ -1486,6 +1544,18 @@
|
|||
"Uber Onslaught": "Útok - Megatěžké",
|
||||
"Uber Runaround": "Obrana - Megatěžká"
|
||||
},
|
||||
"displayItemNames": {
|
||||
"${C} Tickets": "${C} Ticketů",
|
||||
"${C} Tokens": "${C} Tokenů",
|
||||
"Chest": "Truhla",
|
||||
"L1 Chest": "Truhla L1",
|
||||
"L2 Chest": "Truhla L2",
|
||||
"L3 Chest": "Truhla L3",
|
||||
"L4 Chest": "Truhla L4",
|
||||
"L5 Chest": "Truhla L5",
|
||||
"L6 Chest": "Truhla L6",
|
||||
"Unknown Chest": "Neznámá truhla"
|
||||
},
|
||||
"gameDescriptions": {
|
||||
"Be the chosen one for a length of time to win.\nKill the chosen one to become it.": "Buďte vyvoleným dostatečně dlouho, abyste vyhráli.\nZabijte vyvoleného, abyste se jím stali.",
|
||||
"Bomb as many targets as you can.": "Odpalte tolik cílů, kolik dokážete.",
|
||||
|
|
@ -1590,6 +1660,7 @@
|
|||
"Korean": "Korejština",
|
||||
"Malay": "Malajština",
|
||||
"Persian": "Perština",
|
||||
"PirateSpeak": "Řeč pirátů",
|
||||
"Polish": "Polština",
|
||||
"Portuguese": "Portugalština",
|
||||
"Romanian": "Rumunština",
|
||||
|
|
@ -1661,6 +1732,7 @@
|
|||
"Cheating detected; scores and prizes suspended for ${COUNT} days.": "Detekováno podvádění; skóre a ceny pozastaveny na ${COUNT} dní",
|
||||
"Could not establish a secure connection.": "Nelze navázat bezpečné připojení.",
|
||||
"Daily maximum reached.": "Dosaženo denní maximum.",
|
||||
"Daily sign-in reward": "Denní odměna za přihlášení",
|
||||
"Entering tournament...": "Vstupujete do turnaje...",
|
||||
"Invalid code.": "Neplatný kód.",
|
||||
"Invalid payment; purchase canceled.": "Neplatná platební maetoda; platba zrušena.",
|
||||
|
|
@ -1670,11 +1742,14 @@
|
|||
"Item unlocked!": "Položka odemčena!",
|
||||
"LINKING DENIED. ${ACCOUNT} contains\nsignificant data that would ALL BE LOST.\nYou can link in the opposite order if you'd like\n(and lose THIS account's data instead)": "PROPOJENÍ ZAMÍTNUTO. ${ACCOUNT} obsahuje\nznačná data, která by byla ZCELA ZTRACENA.\nPokud chcete, můžete připojit účet v opačném\npořadí (a ztratit tak data TOHOTO účtu)",
|
||||
"Link account ${ACCOUNT} to this account?\nAll existing data on ${ACCOUNT} will be lost.\nThis can not be undone. Are you sure?": "Chcete spojit účet ${ACCOUNT} s tímto účtem?\nVšechna data na účtě ${ACCOUNT} budou smazána.\nTuto akci nelze navrátit zpět. Jste si jisti?",
|
||||
"Longer streaks lead to better rewards.": "Delší série přihláśení vede k lepším odměnám.",
|
||||
"Max number of playlists reached.": "Dosazano maximalniho počtu playlistů",
|
||||
"Max number of profiles reached.": "Dosaženo maximalního počtu profilů",
|
||||
"Maximum friend code rewards reached.": "Dosaženo maximum odměn za kódy přátel.",
|
||||
"Message is too long.": "Zpráva je příliš dlouhá.",
|
||||
"New tournament result!": "Nový výsledek turnaje!",
|
||||
"No servers are available. Please try again soon.": "Žádné servery nejsou nyní dostupné. Zkuste to prosím později.",
|
||||
"No slots available. Free a slot and try again.": "Všechna místa obsazená. Uvolněte místo a zkuste to znovu.",
|
||||
"Profile \"${NAME}\" upgraded successfully.": "Profil „${NAME}“ byl úspěšně povýšen.",
|
||||
"Profile could not be upgraded.": "Profil nelze povýšit.",
|
||||
"Purchase successful!": "Nákup úspěšný!",
|
||||
|
|
@ -1684,7 +1759,9 @@
|
|||
"Sorry, this code has already been used.": "Omlouváme se, ale tento kód již byl použit.",
|
||||
"Sorry, this code has expired.": "Omlouváme se, ale platnost tohoto kódu vypršela.",
|
||||
"Sorry, this code only works for new accounts.": "Omlouváme se, ale tento kód je platný pouze pro nové účty.",
|
||||
"Sorry, this has expired.": "Promiň, vypršela platnost.",
|
||||
"Still searching for nearby servers; please try again soon.": "Stále se vyhledávají lokální servery; zkuste to prosím později.",
|
||||
"Streak: ${NUM} days": "Série: ${NUM} dní",
|
||||
"Temporarily unavailable; please try again later.": "Dočasně nedostupné; zkuste to prosím později.",
|
||||
"The tournament ended before you finished.": "Turnaj skončil než jste ho stihli dokončit.",
|
||||
"This account cannot be unlinked for ${NUM} days.": "Tento účet nelze odpojit po dobu ${NUM} dnů.",
|
||||
|
|
@ -1695,19 +1772,28 @@
|
|||
"Tournaments require ${VERSION} or newer": "Turnaje vyžadují ${VERSION} nebo novější",
|
||||
"Unlink ${ACCOUNT} from this account?\nAll data on ${ACCOUNT} will be reset.\n(except for achievements in some cases)": "Odpojit ${ACCOUNT} od tohoto účtu?\nVeškerá data na účtě ${ACCOUNT} se resetují.\n(výjimka jsou v některých případech Trofeje)",
|
||||
"WARNING: complaints of hacking have been issued against your account.\nAccounts found to be hacking will be banned. Please play fair.": "VAROVÁNÍ: Byla proti Vám vznesena obvinění z podvádění ve hře.\nÚčty, o kterých se prokáže, že používají hacky, budou zabanovány. Hrajte prosím férově.",
|
||||
"Wait reduced!": "Čekání zkráceno!",
|
||||
"Warning: This version of the game is limited to old account data; things may appear missing or out of date.\nPlease upgrade to a newer version of the game to see your latest account data.": "Upozornění: Tato verze hry je omezená starými daty účtu; některé věcy mohou chybět nebo jsou zastaralé.\nProsím aktualizujte si hru na nejnovější verzi,aby jste viděli nejnovější data na svém účtu.",
|
||||
"Would you like to link your device account to this one?\n\nYour device account is ${ACCOUNT1}\nThis account is ${ACCOUNT2}\n\nThis will allow you to keep your existing progress.\nWarning: this cannot be undone!\n": "Přejete si propojit Váš účet zařízení k tomuto?\n\nÚčet vašeho zařízení je ${ACCOUNT1}\nTento účet je ${ACCOUNT2}\n\nTato akce Vám umožní zachovat si stávající postup.\nVarování: Nelze vrátit zpět!",
|
||||
"You already own this!": "Toto již vlastníte!",
|
||||
"You can join in ${COUNT} seconds.": "Připojit se můžete až za ${COUNT} sek.",
|
||||
"You don't have enough tickets for this!": "Na toto nemáte dostatek kupónů!",
|
||||
"You don't own that.": "Toto nevlastníte.",
|
||||
"You got ${COUNT} tickets!": "Získali jste ${COUNT} kupónů!",
|
||||
"You got ${COUNT} tokens!": "Máš ${COUNT} tokenů!",
|
||||
"You got a ${ITEM}!": "Získali jste ${ITEM}!",
|
||||
"You got a chest!": "Získal jste truhlu!",
|
||||
"You got an achievement reward!": "Dostali jste odměnu za trofej!",
|
||||
"You have been promoted to a new league; congratulations!": "Byli jste povýšeni do další ligy; gratulujeme!",
|
||||
"You lost a chest! (All your chest slots were full)": "Ztratil jste truhlu! (Všechna místa byla obsazena)",
|
||||
"You must update the app to view this.": "Pro zobrazení aktualizujte aplikaci.",
|
||||
"You must update to a newer version of the app to do this.": "Musíte aktualizovat na novější verzi aplikace k udělání tohoto.",
|
||||
"You must update to the newest version of the game to do this.": "Vaše verze hry tuto akci nepodporuje, aktualizujte hru na nejnovější verzi.",
|
||||
"You must wait a few seconds before entering a new code.": "Před zadáním nového kódu počkejte pár sekund.",
|
||||
"You placed #${RANK} in a tournament!": "V turnaji jste byl #${RANK}!",
|
||||
"You ranked #${RANK} in the last tournament. Thanks for playing!": "V posledním turnaji jste se umístili na #${RANK} pozici. Děkujeme za hraní!",
|
||||
"Your account was rejected. Are you signed in?": "Váš účet byl odmítnut. Jste přihlášeni?",
|
||||
"Your ad views are not registering. Ad options will be limited for a while.": "Nezaznamenali jsme sledování reklamy. Nastavení reklamy budou chvíli omezené.",
|
||||
"Your copy of the game has been modified.\nPlease revert any changes and try again.": "Vaše kopie hry byla pozměněna.\nVraťte prosím všechny změny a zkuste to znovu.",
|
||||
"Your friend code was used by ${ACCOUNT}": "Váš kód pro přátele byl použit hráčem ${ACCOUNT}"
|
||||
},
|
||||
|
|
@ -1859,6 +1945,7 @@
|
|||
"twoKillText": "DVĚ ZABITÍ!!!",
|
||||
"uiScaleText": "Velikost UI",
|
||||
"unavailableText": "Nedostupné",
|
||||
"unclaimedPrizesText": "Máte Nevyzvednuté Odměny!",
|
||||
"unconfiguredControllerDetectedText": "Zaznamenán nenakonfigurovaný ovladač:",
|
||||
"unlockThisInTheStoreText": "Toto musí být nejdříve odemknuto v obchodě.",
|
||||
"unlockThisProfilesText": "Pro vytvoření více než ${NUM} profilů, potřebujete:",
|
||||
|
|
@ -1877,6 +1964,7 @@
|
|||
"usingItunesText": "Používám aplikaci hudby pro soundtrack...",
|
||||
"usingItunesTurnRepeatAndShuffleOnText": "Ujistěte se prosím, že je zaplý shuffle, a opakovat VŠE v iTunes,",
|
||||
"v2AccountLinkingInfoText": "Pro propojení V2 účtů stiskněte tlačítko „Spravovat účet“",
|
||||
"v2AccountRequiredText": "Toto vyžaduje V2 účet. Upgradujte svůj účet a zkuste to znovu.",
|
||||
"validatingTestBuildText": "Ověřuji testovací build...",
|
||||
"viaText": "skrze",
|
||||
"victoryText": "Vítězství!",
|
||||
|
|
@ -1943,5 +2031,6 @@
|
|||
},
|
||||
"yesAllowText": "Ano, povolit!",
|
||||
"yourBestScoresText": "Vaše nejlepší skóre",
|
||||
"yourBestTimesText": "Váš nejlepší čas"
|
||||
"yourBestTimesText": "Váš nejlepší čas",
|
||||
"yourPrizeText": "Vaše cena:"
|
||||
}
|
||||
143
dist/ba_data/data/languages/dutch.json
vendored
143
dist/ba_data/data/languages/dutch.json
vendored
|
|
@ -7,7 +7,9 @@
|
|||
"campaignProgressText": "Campagne Voortgang [Moeilijk]: ${PROGRESS}",
|
||||
"changeOncePerSeason": "U kunt dit maar een keer per seizoen wijzigen.",
|
||||
"changeOncePerSeasonError": "U moet wachten tot het volgende seizoen om dit te veranderen (${NUM} dagen)",
|
||||
"createAnAccountText": "Maak een account",
|
||||
"customName": "Aangepaste naam",
|
||||
"deleteAccountText": "Verwijder Account",
|
||||
"deviceSpecificAccountText": "U gebruikt nu het apparaat-specifieke account: ${NAME}",
|
||||
"googlePlayGamesAccountSwitchText": "Als je een ander Google-account \nwilt gebruiken, gebruik dan de Google Play Games-app om over te schakelen.",
|
||||
"linkAccountsEnterCodeText": "Voer Code In",
|
||||
|
|
@ -26,16 +28,17 @@
|
|||
"setAccountName": "Stel account naam in",
|
||||
"setAccountNameDesc": "Selecteer de naam om weer te geven voor uw account.\nU kan de naam gebruiken van een van de verbonden accounts\nof maak een unieke naam aan.",
|
||||
"signInInfoText": "Log in om tickets te verzamelen, online te concurreren,\nen om je voortgang te delen tussen apparaten.",
|
||||
"signInText": "Log In",
|
||||
"signInText": "Inloggen",
|
||||
"signInWithAnEmailAddressText": "Inloggen met e-mailadres",
|
||||
"signInWithDeviceInfoText": "(een automatisch account is alleen beschikbaar op dit apparaat)",
|
||||
"signInWithDeviceText": "Log in met apparaat account",
|
||||
"signInWithDeviceText": "Inloggen met apparaat account",
|
||||
"signInWithGameCircleText": "Log in met Game Circle",
|
||||
"signInWithGooglePlayText": "Log in met Google Play",
|
||||
"signInWithTestAccountInfoText": "(oudere account type; gebruik device account gaat door)",
|
||||
"signInWithTestAccountText": "Log in met test account",
|
||||
"signInWithText": "Log in met ${SERVICE}",
|
||||
"signInWithText": "Inloggen met ${SERVICE}",
|
||||
"signInWithV2InfoText": "(een account dat op alle platforms werkt)",
|
||||
"signInWithV2Text": "Inloggen met een BombSquad rekening",
|
||||
"signInWithV2Text": "Inloggen met een ${APP_NAME} account",
|
||||
"signOutText": "Log Uit",
|
||||
"signingInText": "Inloggen...",
|
||||
"signingOutText": "Uitloggen...",
|
||||
|
|
@ -347,6 +350,8 @@
|
|||
"allowText": "Toestaan",
|
||||
"alreadySignedInText": "Uw account is al ingelogd op een ander apparaat;\nVerander van account of sluit het spel op uw andere\napparaten en probeer het opnieuw.",
|
||||
"apiVersionErrorText": "Kan module ${NAME} niet laden; deze gebruikt api-versie ${VERSION_USED}; benodigd is ${VERSION_REQUIRED}.",
|
||||
"applyText": "Toepassen",
|
||||
"areYouSureText": "Weet je het zeker?",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(\"Auto\" activeert dit alleen als een koptelefoon is aangesloten)",
|
||||
"headRelativeVRAudioText": "Hoofd-Relatieve VR Geluid",
|
||||
|
|
@ -371,14 +376,23 @@
|
|||
"boostText": "Boost",
|
||||
"bsRemoteConfigureInAppText": "${REMOTE_APP_NAME} is geconfigureerd in de app zelf.",
|
||||
"buttonText": "knop",
|
||||
"canWeDebugText": "Wilt u dat BombSquad automatisch bugs, crashes,\nen basisgebruik info naar de ontwikkelaar rapporteert?\n\nDeze gegevens bevatten geen persoonlijke informatie\nen helpen om het spel soepel en bug-vrij te houden.",
|
||||
"canWeDebugText": "Wilt u dat ${APP_NAME} automatisch bugs, crashes,\nen basisgebruik info naar de ontwikkelaar rapporteert?\n\nDeze gegevens bevatten geen persoonlijke informatie\nen helpen om het spel soepel en bug-vrij te houden.",
|
||||
"cancelText": "Annuleer",
|
||||
"cantConfigureDeviceText": "Sorry, $ {DEVICE} niet configureerbaar.",
|
||||
"challengeEndedText": "Deze uitdaging is beëindigd.",
|
||||
"chatMuteText": "Chat negeren",
|
||||
"chatMutedText": "berichten gedempt",
|
||||
"chatUnMuteText": "maak de chat ongedaan",
|
||||
"chests": {
|
||||
"prizeOddsText": "Prijs Kansen",
|
||||
"reduceWaitText": "Verminder Wachttijd",
|
||||
"slotDescriptionText": "Hier is plek voor een schatkist.\n\nVerdien schatkisten door campagnelevels te spelen,\nje te plaatsen in toernooien en met het voltooien\nvan prestaties.",
|
||||
"slotText": "Schatkist plaats ${NUM}",
|
||||
"slotsFullWarningText": "WAARSCHUWING: Al je schatkist plaatsen zijn vol.\nElke schatkist die je dit spel nog verdient, gaat verloren.",
|
||||
"unlocksInText": "Ontgrendeld Over"
|
||||
},
|
||||
"choosingPlayerText": "<speler kiezen>",
|
||||
"claimText": "Claim",
|
||||
"codesExplainText": "Codes worden door de \nontwikkelaar verstrekt om accountproblemen te diagnosticeren en te corrigeren.",
|
||||
"completeThisLevelToProceedText": "U moet dit level voltooien\nom door te gaan!",
|
||||
"completionBonusText": "Voltooiing Bonus",
|
||||
|
|
@ -574,6 +588,7 @@
|
|||
"demoText": "demonstratie",
|
||||
"denyText": "Weigeren",
|
||||
"deprecatedText": "Verouderd",
|
||||
"descriptionText": "Beschrijving",
|
||||
"desktopResText": "Bureaublad Resolutie",
|
||||
"deviceAccountUpgradeText": "Waarschuwing: u bent ingelogd met een apparaataccount (${NAME}). \nApparaataccounts worden in een toekomstige update verwijderd. \nUpgrade naar een V2-account als u uw voortgang wilt \nbehouden.",
|
||||
"difficultyEasyText": "Makkelijk",
|
||||
|
|
@ -585,6 +600,7 @@
|
|||
"disableXInputDescriptionText": "Staat meer dan 4 controllers toe, maar werkt misschien niet helemaal goed.",
|
||||
"disableXInputText": "Schakel XInput uit",
|
||||
"disabledText": "Gehandicapt",
|
||||
"discardText": "Gooi weg",
|
||||
"discordFriendsText": "Wil je op zoek naar nieuwe mensen om mee te spelen? \nSluit je aan bij onze Discord en vind nieuwe vrienden!",
|
||||
"discordJoinText": "Sluit je aan bij de onenigheid",
|
||||
"doneText": "Klaar",
|
||||
|
|
@ -621,6 +637,7 @@
|
|||
"localProfileText": "(lokaal profiel)",
|
||||
"nameDescriptionText": "Speler Naam",
|
||||
"nameText": "Naam",
|
||||
"profileAlreadyExistsText": "Een profiel met dat naam bestaat al.",
|
||||
"randomText": "willekeurig",
|
||||
"titleEditText": "Profiel Aanpassen",
|
||||
"titleNewText": "Nieuw Profiel",
|
||||
|
|
@ -672,6 +689,8 @@
|
|||
"errorText": "Fout",
|
||||
"errorUnknownText": "onbekende fout",
|
||||
"exitGameText": "${APP_NAME} Verlaten?",
|
||||
"expiredAgoText": "${T} geleden verlopen",
|
||||
"expiresInText": "Verloopt over ${T}",
|
||||
"exportSuccessText": "'${NAME}' geëxporteerd.",
|
||||
"externalStorageText": "Externe Opslag",
|
||||
"failText": "Faal",
|
||||
|
|
@ -708,6 +727,8 @@
|
|||
"editText": "Bewerk\nSpeellijst",
|
||||
"gameListText": "Spellen Lijst",
|
||||
"newText": "Nieuwe\nSpeellijst",
|
||||
"pointsToWinText": "Punten om te winnen",
|
||||
"seriesLengthText": "Series lengte",
|
||||
"showTutorialText": "Uitleg Weergeven",
|
||||
"shuffleGameOrderText": "Willekeurige Spel Volgorde",
|
||||
"titleText": "Pas ${TYPE} Speellijst aan"
|
||||
|
|
@ -736,6 +757,7 @@
|
|||
"copyCodeConfirmText": "Code gekopieerd naar klembord",
|
||||
"copyCodeText": "Kopieer Code",
|
||||
"dedicatedServerInfoText": "Voor het beste resultaat, zet dan een dedicated server op. Zie bombsquadgame.com/server om te leren hoe.",
|
||||
"descriptionShortText": "Gebruik het Verzamel venster om een partij samen te stellen",
|
||||
"disconnectClientsText": "Hierdoor verbreekt de verbinding met ${COUNT} spelers(s)\nvan uw partij. Weet u het zeker?",
|
||||
"earnTicketsForRecommendingAmountText": "Vrienden ontvangen ${COUNT} tickets als ze het spel proberen\n(en jij ontvangt ${YOU_COUNT} voor elke vriend die dit doet)",
|
||||
"earnTicketsForRecommendingText": "Deel de game \nVoor gratis tickets...",
|
||||
|
|
@ -748,10 +770,10 @@
|
|||
"friendHasSentPromoCodeText": "${COUNT} ${APP_NAME} tickets van ${NAME}",
|
||||
"friendPromoCodeAwardText": "Je krijgt ${COUNT} tickets elke keer het is gebruikt.",
|
||||
"friendPromoCodeExpireText": "Deze code zal vervallen in ${EXPIRE_HOURS} uren en werkt alleen met nieuwe spelers.",
|
||||
"friendPromoCodeInstructionsText": "Om het te gebruiken, open je ${APP_NAME} en ga je naar 'Instellingen-> Geavanceerd-> Voer code in'.\nZie bombsquadgame.com voor downloadlinks voor alle ondersteunde platforms.",
|
||||
"friendPromoCodeInstructionsText": "Om het te gebruiken, open je ${APP_NAME} en ga je naar 'Instellingen-> Geavanceerd-> Stuur info'.\nZie bombsquadgame.com voor downloadlinks voor alle ondersteunde platforms.",
|
||||
"friendPromoCodeRedeemLongText": "Het kan ingewisseld worden voor ${COUNT} gratis tickets met tot en met ${MAX_USES} mensen.",
|
||||
"friendPromoCodeRedeemShortText": "Het kan ingewisseld worden voor ${COUNT} in het spel",
|
||||
"friendPromoCodeWhereToEnterText": "(in \"Instellingen-> Geavanceerd-> Voer code in\")",
|
||||
"friendPromoCodeWhereToEnterText": "(in \"Instellingen-> Geavanceerd-> Stuur info\")",
|
||||
"getFriendInviteCodeText": "Krijg een uitnodigingscode",
|
||||
"googlePlayDescriptionText": "Nodig Google Play spelers uit voor uw partij:",
|
||||
"googlePlayInviteText": "Uitnodigen",
|
||||
|
|
@ -857,6 +879,12 @@
|
|||
"youHaveShortText": "Je hebt ${COUNT}",
|
||||
"youHaveText": "U heeft ${COUNT} tickets"
|
||||
},
|
||||
"goldPass": {
|
||||
"desc1InfTokensText": "Oneindig tokens.",
|
||||
"desc2NoAdsText": "Geen reclame.",
|
||||
"desc3ForeverText": "Voor altijd.",
|
||||
"goldPassText": "Goud pas"
|
||||
},
|
||||
"googleMultiplayerDiscontinuedText": "Sorry, de Google Play multi-player functie is nu even niet beschikbaar. \nIk werk hard aan een vervanger. \nProbeer nu alsjeblieft een andere connectie mogelijkheid.\n-Eric",
|
||||
"googlePlayPurchasesNotAvailableText": "Google Play-aankopen zijn niet beschikbaar. \nMogelijk moet u uw winkel-app updaten.",
|
||||
"googlePlayServicesNotAvailableText": "Google Play-services zijn niet beschikbaar. \nSommige app-functionaliteit is mogelijk uitgeschakeld.",
|
||||
|
|
@ -882,7 +910,7 @@
|
|||
"visualsText": "Visuele"
|
||||
},
|
||||
"helpWindow": {
|
||||
"bombInfoText": "- Bom -\nSterker dan slagen, maar kan\nresulteren in ernstige zelfverwonding.\nVoor het beste resultaat, gooi richting\nvijand voordat lont op raakt.",
|
||||
"bombInfoText": "- Bom -\nSterker dan slaan, maar kan\nresulteren in ernstige zelfverwonding.\nVoor het beste resultaat, gooi richting\nvijand voordat de lont op raakt.",
|
||||
"canHelpText": "${APP_NAME} kan helpen.",
|
||||
"controllersInfoText": "U kan ${APP_NAME} spelen met vrienden via een netwerk, of u\nkan het allemaal op hetzelfde apparaat spelen als u genoeg controllers hebt.\n${APP_NAME} ondersteunt er een verscheidenheid van; u kunt zelfs uw telefoons\nals controller gebruiken met de gratis '${REMOTE_APP_NAME}' app.\nZie Instellingen->Controllers voor meer info.",
|
||||
"controllersInfoTextFantasia": "Een speler kan de afstandbediening gebruiken als controller,\nmaar gamepads zijn sterk aanbevolen. Je kunt ook mobiele-apparaten\ngebruiken als controllers via de gratis 'Bombsquad Remote' app.\nZie 'Controllers' onder 'Instellingen' voor meer info.",
|
||||
|
|
@ -898,7 +926,7 @@
|
|||
"friendsText": "Vrienden",
|
||||
"jumpInfoText": "- Springen -\nSpring over kleine openingen,\nom dingen hoger te gooien, en om\ngevoelens van vreugde uit te drukken.",
|
||||
"orPunchingSomethingText": "Of iets slaan, van een klif gooien, en op de weg naar beneden opblazen met een kleverige bom.",
|
||||
"pickUpInfoText": "- Op Pakken -\nPak vlaggen, vijanden, of iets\nanders niet vastgeschroefd aan de\ngrond. Druk opnieuw om te gooien.",
|
||||
"pickUpInfoText": "- Op Pakken -\nPak vlaggen, vijanden, of iets\nanders dat niet vast zit aan de\ngrond. Druk opnieuw om te gooien.",
|
||||
"powerupBombDescriptionText": "Laat u drie bommen opzwepen\nachter elkaar in plaats van maar een.",
|
||||
"powerupBombNameText": "Drievoudige-Bommen",
|
||||
"powerupCurseDescriptionText": "Waarschijnlijk wilt u deze te vermijden.\n ...of toch niet?",
|
||||
|
|
@ -934,6 +962,7 @@
|
|||
"importText": "Importeer",
|
||||
"importingText": "Aan het importeren...",
|
||||
"inGameClippedNameText": "zal in-game worden\n\"${NAME}\"",
|
||||
"inboxText": "Inbox",
|
||||
"installDiskSpaceErrorText": "FOUT: Niet in staat om de installatie te voltooien.\nHet kan zijn dat er gaan ruimte meer is op uw apparaat.\nMaak wat vrij en probeer opnieuw.",
|
||||
"internal": {
|
||||
"arrowsToExitListText": "druk ${LEFT} of ${RIGHT} om de lijst te verlaten",
|
||||
|
|
@ -990,12 +1019,14 @@
|
|||
"touchScreenJoinWarningText": "U doet mee met een aanraakscherm.\nAls dit een vergissing was, druk er mee op 'Menu->Verlaat Spel'.",
|
||||
"touchScreenText": "TouchScreen",
|
||||
"trialText": "proefperiode",
|
||||
"unableToCompleteTryAgainText": "Voltooien op dit moment mislukt.\nProbeer het later nog eens.",
|
||||
"unableToResolveHostText": "Error: kan de host niet resolven.",
|
||||
"unavailableNoConnectionText": "Dit is momenteel niet beschikbaar (geen internet verbinding?)",
|
||||
"vrOrientationResetCardboardText": "Hiermee reset je de VR oriëntatie.\nOm het spel te spelen heb je een externe controller nodig.",
|
||||
"vrOrientationResetText": "VR oriëntatie reset.",
|
||||
"willTimeOutText": "(totdat u inactief bent)"
|
||||
},
|
||||
"inventoryText": "Inventaris",
|
||||
"jumpBoldText": "SPRING",
|
||||
"jumpText": "Spring",
|
||||
"keepText": "houd",
|
||||
|
|
@ -1042,8 +1073,11 @@
|
|||
"seasonEndsMinutesText": "Seizoen eindigt in ${NUMBER} minuten.",
|
||||
"seasonText": "Seizoen ${NUMBER}",
|
||||
"tournamentLeagueText": "Haal de ${NAME} competitie om aan dit toernooi mee te doen.",
|
||||
"trophyCountsResetText": "Trofee telling reset in het volgende seizoen."
|
||||
"trophyCountsResetText": "Trofee telling reset in het volgende seizoen.",
|
||||
"upToDateBonusDescriptionText": "Spelers met een recente versie van het\nspel krijgen hier een ${PERCENT}% bonus.",
|
||||
"upToDateBonusText": "Up-To-Date Bonus"
|
||||
},
|
||||
"learnMoreText": "Meer informatie",
|
||||
"levelBestScoresText": "Beste scores voor ${LEVEL}",
|
||||
"levelBestTimesText": "Beste tijden voor ${LEVEL}",
|
||||
"levelFastestTimesText": "Snelste tijden in ${LEVEL}",
|
||||
|
|
@ -1090,6 +1124,8 @@
|
|||
"modeArcadeText": "Speelhal Modus",
|
||||
"modeClassicText": "Klassieke Modus",
|
||||
"modeDemoText": "Demo Modus",
|
||||
"moreSoonText": "Binnenkort meer...",
|
||||
"mostDestroyedPlayerText": "Meest Vernietigde Speler",
|
||||
"mostValuablePlayerText": "Meest Waardevolle Speler",
|
||||
"mostViolatedPlayerText": "Meest Geschonden Speler",
|
||||
"mostViolentPlayerText": "Meest Gewelddadige Speler",
|
||||
|
|
@ -1106,6 +1142,7 @@
|
|||
"nameSuicideText": "${NAME} pleegde zelfmoord.",
|
||||
"nameText": "Naam",
|
||||
"nativeText": "van apparaat",
|
||||
"newExclaimText": "Nieuw!",
|
||||
"newPersonalBestText": "Nieuw persoonlijk record!",
|
||||
"newTestBuildAvailableText": "Er is een nieuwere testversie beschikbaar! (${VERSION} build ${BUILD}).\nDownload hier ${ADDRESS}",
|
||||
"newText": "Nieuw",
|
||||
|
|
@ -1117,6 +1154,7 @@
|
|||
"noExternalStorageErrorText": "Geen externe opslag gevonden op dit apparaat",
|
||||
"noGameCircleText": "Fout: niet aangemeld bij GameCircle",
|
||||
"noJoinCoopMidwayText": "Je kan niet halverwegen inspringen bij coöperatieve spellen.",
|
||||
"noMessagesText": "Geen berichten.",
|
||||
"noPluginsInstalledText": "Geen plug-ins geïnstalleerd",
|
||||
"noProfilesErrorText": "U heeeft geen speler profielen, dus zit u vast aan '${NAME}'.\nGa naar Instellingen->Speler Profielen om een profiel te maken voor uzelf.",
|
||||
"noScoresYetText": "Nog geen scores.",
|
||||
|
|
@ -1126,6 +1164,7 @@
|
|||
"noValidMapsErrorText": "Geen geldige gebieden gevonden voor dit speltype.",
|
||||
"notEnoughPlayersRemainingText": "Niet genoeg spelers over; stop en start een nieuw spel.",
|
||||
"notEnoughPlayersText": "U heeft minstens ${COUNT} spelers nodig om dit spel te starten!",
|
||||
"notEnoughTicketsText": "Onvoldoende tickets!",
|
||||
"notNowText": "Niet Nu",
|
||||
"notSignedInErrorText": "Je moet inloggen om dit te doen.",
|
||||
"notSignedInGooglePlayErrorText": "Je moet ingelogd zijn met Google Play om dit te doen.",
|
||||
|
|
@ -1138,6 +1177,9 @@
|
|||
"onText": "Aan",
|
||||
"oneMomentText": "Een Moment..",
|
||||
"onslaughtRespawnText": "${PLAYER} zal respawnen in golf ${WAVE}",
|
||||
"openMeText": "Maak Mij Open!",
|
||||
"openNowText": "Nu Openen",
|
||||
"openText": "Openen",
|
||||
"orText": "${A} of ${B}",
|
||||
"otherText": "Andere ...",
|
||||
"outOfText": "(#${RANK} van de ${ALL})",
|
||||
|
|
@ -1231,6 +1273,8 @@
|
|||
"punchText": "Slaan",
|
||||
"purchaseForText": "Koop voor ${PRICE}",
|
||||
"purchaseGameText": "Koop Spel",
|
||||
"purchaseNeverAvailableText": "Sorry, aankopen zijn niet beschikbaar voor deze build.\nProbeer in te loggen op uw account op een ander platform en daar aankopen te doen.",
|
||||
"purchaseNotAvailableText": "Deze aankoop is niet beschikbaar.",
|
||||
"purchasingText": "Aanschaffen...",
|
||||
"quitGameText": "${APP_NAME} Verlaten?",
|
||||
"quittingIn5SecondsText": "Sluiten in 5 seconden...",
|
||||
|
|
@ -1273,6 +1317,7 @@
|
|||
"version_mismatch": "Versie ongelijk.\nZorg er voor dat BombSquad en BombSquad Afstandsbediening\nde nieuwste versie zijn en probeer het opnieuw."
|
||||
},
|
||||
"removeInGameAdsText": "Koop \"${PRO}\" in de winkel om de in-game advertenties te verwijderen.",
|
||||
"removeInGameAdsTokenPurchaseText": "TIJDELIJK AANBOD: Koop een willekeurig token paket om de in-game advertenties te verwijderen.",
|
||||
"renameText": "Hernoemen",
|
||||
"replayEndText": "Stop Herhaling",
|
||||
"replayNameDefaultText": "Herhaling Laatste Spel",
|
||||
|
|
@ -1307,6 +1352,7 @@
|
|||
},
|
||||
"scoreWasText": "(was ${COUNT})",
|
||||
"selectText": "Selecteren",
|
||||
"sendInfoDescriptionText": "Stuurt account en app status info naar de developer. \nVergeet niet je naam of reden voor het sturen.",
|
||||
"seriesWinLine1PlayerText": "WINT DE",
|
||||
"seriesWinLine1TeamText": "WINT DE",
|
||||
"seriesWinLine1Text": "WINT DE",
|
||||
|
|
@ -1323,9 +1369,10 @@
|
|||
},
|
||||
"settingsWindowAdvanced": {
|
||||
"alwaysUseInternalKeyboardDescriptionText": "(een simpele, controller-vriendelijke toetsenbord op het scherm voor tekstbewerking)",
|
||||
"alwaysUseInternalKeyboardText": "Gebruik altijd Interne Toetsenbord",
|
||||
"alwaysUseInternalKeyboardText": "Gebruik altijd interne toetsenbord",
|
||||
"benchmarksText": "Maatstaven en Stress-Testen",
|
||||
"disableCameraGyroscopeMotionText": "Schakel de Camera Gyroscoop beweging uit",
|
||||
"devToolsText": "Dev Tools",
|
||||
"disableCameraGyroscopeMotionText": "Schakel de camera gyroscoop beweging uit",
|
||||
"disableCameraShakeText": "Schakel schuddende camera uit",
|
||||
"disableThisNotice": "(U kunt deze melding uitschakelen in de geavanceerde instellingen)",
|
||||
"enablePackageModsDescriptionText": "(Geeft extra aanpassingsmogelijkheden maar deactiveert net-spel)",
|
||||
|
|
@ -1334,16 +1381,21 @@
|
|||
"forTestingText": "Let op: deze waarden zijn alleen voor testen en zullen verloren gaan als de app gesloten wordt.",
|
||||
"helpTranslateText": "${APP_NAME}'s niet-Engelse vertalingen is een gezamenlijke\ninspanning van de gemeenschap. Als u daar aan wilt bijdragen of een vertaling\nwilt corrigeren, klik dan op de link hieronder. Bij voorbaat dank!",
|
||||
"helpTranslateTextScale": 1.0,
|
||||
"kickIdlePlayersText": "Verstoot Afwezige Spelers",
|
||||
"insecureConnectionsDescriptionText": "niet aanbevolen, maar zou online spelen kunnen toestaan\nvanuit beperkte landen en netwerken",
|
||||
"insecureConnectionsText": "Gebruik onveilige connecties",
|
||||
"kickIdlePlayersText": "Verstoot afwezige spelers",
|
||||
"kidFriendlyModeText": "Kind Vriendelijke Modus (minder geweld, etc.)",
|
||||
"languageText": "Taal",
|
||||
"languageTextScale": 1.0,
|
||||
"moddingGuideText": "Aanpasgids",
|
||||
"moddingToolsText": "Modding Tools",
|
||||
"mustRestartText": "U moet het spel herstarten voordat dit effect heeft.",
|
||||
"netTestingText": "Netwerk Testen",
|
||||
"resetText": "Reset",
|
||||
"sendInfoText": "Stuur Informatie",
|
||||
"showBombTrajectoriesText": "Baan van de bom weergeven",
|
||||
"showDemosWhenIdleText": "Toon demo's wanneer deze niet actief zijn",
|
||||
"showDemosWhenIdleText": "Toon demo's wanneer je inactief gaat",
|
||||
"showDeprecatedLoginTypesText": "Laat vervallen login types zien",
|
||||
"showDevConsoleButtonText": "Toon dev-consoleknop",
|
||||
"showInGamePingText": "Toon in-game ping",
|
||||
"showPlayerNamesText": "Toon Namen Spelers",
|
||||
|
|
@ -1354,7 +1406,7 @@
|
|||
"translationFetchingStatusText": "vertaalstatus controleren...",
|
||||
"translationInformMe": "Meld het wanneer mijn taal updates nodig heeft.",
|
||||
"translationNoUpdateNeededText": "De huidige taal is up to date; woohoo!",
|
||||
"translationUpdateNeededText": "** de huidige taal heeft updates nodig!! **",
|
||||
"translationUpdateNeededText": "** De huidige taal heeft updates nodig!! **",
|
||||
"vrTestingText": "VR Testen"
|
||||
},
|
||||
"shareText": "Deel",
|
||||
|
|
@ -1364,6 +1416,9 @@
|
|||
"signInWithGameCenterText": "Om een Game Center account te gebruiken,\nlogt u in bij de Game Center app.",
|
||||
"singleGamePlaylistNameText": "Alleen ${GAME}",
|
||||
"singlePlayerCountText": "1 speler",
|
||||
"sizeLargeText": "Groot",
|
||||
"sizeMediumText": "Medium",
|
||||
"sizeSmallText": "Klein",
|
||||
"soloNameFilterText": "Solo ${NAME}",
|
||||
"soundtrackTypeNames": {
|
||||
"CharSelect": "Karakter selectie",
|
||||
|
|
@ -1389,6 +1444,7 @@
|
|||
},
|
||||
"spaceKeyText": "spatie",
|
||||
"statsText": "stats",
|
||||
"stopRemindingMeText": "Niet Meer Herinneren",
|
||||
"storagePermissionAccessText": "Dit vereist toegang tot opslag",
|
||||
"store": {
|
||||
"alreadyOwnText": "U bent al de eigenaar van ${NAME}!",
|
||||
|
|
@ -1452,6 +1508,7 @@
|
|||
"testBuildValidatedText": "Test Versie Gevalideerd; Veel Plezier!",
|
||||
"thankYouText": "Bedankt voor uw ondersteuning! Veel plezier met het spel!!",
|
||||
"threeKillText": "DRIEDUBBELE DOOD!!",
|
||||
"ticketsDescriptionText": "Tickets kunnen worden gebruikt om in de winkel karakters, \nspeelvelden, mini-spellen en meer beschikbaar te maken.\n\nTickets kunnen in schatkisten worden gevonden,\ndie je kan winnen in campagnes, toernooien en prestaties.",
|
||||
"timeBonusText": "Tijd Bonus",
|
||||
"timeElapsedText": "Tijd Verstreken",
|
||||
"timeExpiredText": "Tijd Verstreken",
|
||||
|
|
@ -1462,10 +1519,24 @@
|
|||
"tipText": "Tip",
|
||||
"titleText": "BombSquad",
|
||||
"titleVRText": "BombSquad VR",
|
||||
"tokens": {
|
||||
"getTokensText": "Krijg Tokens",
|
||||
"notEnoughTokensText": "Niet genoeg tokens!",
|
||||
"numTokensText": "${COUNT} Tokens",
|
||||
"openNowDescriptionText": "Je hebt voldoende tokens\nom nu te openen - je hoeft\nNiet te wachten.",
|
||||
"shinyNewCurrencyText": "BombSquad's glimmende nieuwe valuta.",
|
||||
"tokenPack1Text": "Klein Token Pakje",
|
||||
"tokenPack2Text": "Middelgroot Token Pakje",
|
||||
"tokenPack3Text": "Grote Token Pak",
|
||||
"tokenPack4Text": "Jumbo Token Pak",
|
||||
"tokensDescriptionText": "Tokens worden gebruikt om schatkisten sneller te openen\nen voor andere spel- en account opties.\n\nJe kan tokens winnen in het spel of kopen\nin pakketten. Of koop een Gouden Pas voor een oneindig\naantal tokens en om nooit meer van ze te horen.",
|
||||
"youHaveGoldPassText": "Je hebt een Gouden Pas.\nAlle token aankopen zijn gratis.\nGeniet!"
|
||||
},
|
||||
"topFriendsText": "Top Vrienden",
|
||||
"tournamentCheckingStateText": "Toernooi status nakijken; even geduld aub...",
|
||||
"tournamentEndedText": "Dit toernooi is beëindigd. Er zal snel een nieuwe beginnen.",
|
||||
"tournamentEntryText": "Toernooi Inschrijving",
|
||||
"tournamentFinalStandingsText": "Eindstand",
|
||||
"tournamentResultsRecentText": "Recente Toernooi Uitslagen",
|
||||
"tournamentStandingsText": "Toernooi Stand",
|
||||
"tournamentText": "Toernooi",
|
||||
|
|
@ -1539,6 +1610,18 @@
|
|||
"Uber Onslaught": "Uber Afslachting",
|
||||
"Uber Runaround": "Uber Omlopen"
|
||||
},
|
||||
"displayItemNames": {
|
||||
"${C} Tickets": "${C} Tickets",
|
||||
"${C} Tokens": "${C} Tokens",
|
||||
"Chest": "Schatkist",
|
||||
"L1 Chest": "L1 Schatkist",
|
||||
"L2 Chest": "L2 Schatkist",
|
||||
"L3 Chest": "L3 Schatkist",
|
||||
"L4 Chest": "L4 Schatkist",
|
||||
"L5 Chest": "L5 Schatkist",
|
||||
"L6 Chest": "L6 Schatkist",
|
||||
"Unknown Chest": "Onbekende Schatkist"
|
||||
},
|
||||
"gameDescriptions": {
|
||||
"Be the chosen one for a length of time to win.\nKill the chosen one to become it.": "Ben de uitverkorene voor een bepaalde tijd om te winnen.\nDood de uitverkorene om het te worden.",
|
||||
"Bomb as many targets as you can.": "Bombardeer zo veel mogelijk doelwitten als u kan.",
|
||||
|
|
@ -1622,7 +1705,7 @@
|
|||
"languages": {
|
||||
"Arabic": "Arabisch",
|
||||
"Belarussian": "Belarusian",
|
||||
"Chinese": "Vereenvoudigd Chinees",
|
||||
"Chinese": "Vereenvoudigd Chinees ",
|
||||
"ChineseTraditional": "Traditioneel Chinees",
|
||||
"Croatian": "Kroatisch",
|
||||
"Czech": "Tsjechisch",
|
||||
|
|
@ -1644,6 +1727,7 @@
|
|||
"Korean": "Koreaans",
|
||||
"Malay": "Maleis",
|
||||
"Persian": "Perzisch",
|
||||
"PirateSpeak": "Piraat Praat",
|
||||
"Polish": "Pools",
|
||||
"Portuguese": "Portugees",
|
||||
"Romanian": "Roemeens",
|
||||
|
|
@ -1718,6 +1802,7 @@
|
|||
"Cheating detected; scores and prizes suspended for ${COUNT} days.": "Valsspelen ontdekt; scores en prijzen geschorst voor ${COUNT} dagen.",
|
||||
"Could not establish a secure connection.": "Kon geen beveiligde verbinding tot stand brengen.",
|
||||
"Daily maximum reached.": "Dagelijkse maximum bekijkt.",
|
||||
"Daily sign-in reward": "Dagelijkse inlog beloning",
|
||||
"Entering tournament...": "Toernooi betreden...",
|
||||
"Invalid code.": "Ongeldige code.",
|
||||
"Invalid payment; purchase canceled.": "Ongeldige betaling; aankoop geannuleerd.",
|
||||
|
|
@ -1727,11 +1812,14 @@
|
|||
"Item unlocked!": "item ontgrendeld!",
|
||||
"LINKING DENIED. ${ACCOUNT} contains\nsignificant data that would ALL BE LOST.\nYou can link in the opposite order if you'd like\n(and lose THIS account's data instead)": "LINKENDE ONTKENNING. ${ACCOUNT} bevat\nsignificante gegevens die ALLES ZIJN VERLOREN.\nJe kunt in omgekeerde volgorde linken als je wilt\n(en verlies de gegevens van DIT account in plaats daarvan)",
|
||||
"Link account ${ACCOUNT} to this account?\nAll existing data on ${ACCOUNT} will be lost.\nThis can not be undone. Are you sure?": "Verbind account ${ACCOUNT} aan dit account?\nAlle bestaande data op ${ACCOUNT} zal verloren gaan.\nDit kan niet ongedaan worden gemaakt. Weet je het zeker?",
|
||||
"Longer streaks lead to better rewards.": "Langere reeksen leiden tot betere beloningen.",
|
||||
"Max number of playlists reached.": "Maximaal aantal speellijsten bereikt.",
|
||||
"Max number of profiles reached.": "Maximaal aantal profielen bereikt.",
|
||||
"Maximum friend code rewards reached.": "Maximum vriend code beloning behaald",
|
||||
"Message is too long.": "Bericht is te lang.",
|
||||
"New tournament result!": "Nieuwe toernooi uitslag!",
|
||||
"No servers are available. Please try again soon.": "Er zijn geen servers beschikbaar. Probeer het binnenkort opnieuw.",
|
||||
"No slots available. Free a slot and try again.": "Geen plaatsen beschikbaar. Maak er een vrij en probeer opnieuw.",
|
||||
"Profile \"${NAME}\" upgraded successfully.": "Profiel \"${NAME}\" is succesvol opgewaardeerd.",
|
||||
"Profile could not be upgraded.": "Profiel kon niet worden opgewaardeerd.",
|
||||
"Purchase successful!": "Aankoop succesvol!",
|
||||
|
|
@ -1741,7 +1829,9 @@
|
|||
"Sorry, this code has already been used.": "Sorry, deze code is al gebruikt.",
|
||||
"Sorry, this code has expired.": "Sorry, deze code is verlopen.",
|
||||
"Sorry, this code only works for new accounts.": "Sorry, deze code werkt alleen op nieuwe accounts.",
|
||||
"Sorry, this has expired.": "Sorry, dit is verlopen.",
|
||||
"Still searching for nearby servers; please try again soon.": "Nog steeds op zoek naar servers in de buurt; probeer het snel opnieuw.",
|
||||
"Streak: ${NUM} days": "Reeks: ${NUM} dagen",
|
||||
"Temporarily unavailable; please try again later.": "Tijdelijk niet beschikbaar; probeer het later opnieuw.",
|
||||
"The tournament ended before you finished.": "Het toernooi eindigde voordat u klaar was.",
|
||||
"This account cannot be unlinked for ${NUM} days.": "Dit account kan gedurende ${NUM} dagen niet worden ontkoppeld.",
|
||||
|
|
@ -1752,19 +1842,28 @@
|
|||
"Tournaments require ${VERSION} or newer": "toernooi vereist ${VERSION} of nieuwer",
|
||||
"Unlink ${ACCOUNT} from this account?\nAll data on ${ACCOUNT} will be reset.\n(except for achievements in some cases)": "Koppel ${ACCOUNT} los van dit account?\nAlle gegevens over ${ACCOUNT} worden opnieuw ingesteld.\n(behalve voor prestaties in sommige gevallen)",
|
||||
"WARNING: complaints of hacking have been issued against your account.\nAccounts found to be hacking will be banned. Please play fair.": "WAARSCHUWING: klachten over hacking zijn afgegeven tegen uw account.\nAccounts die hacken blijken te zijn, worden verbannen. Speel alsjeblieft eerlijk.",
|
||||
"Wait reduced!": "Wachttijd verminderd!",
|
||||
"Warning: This version of the game is limited to old account data; things may appear missing or out of date.\nPlease upgrade to a newer version of the game to see your latest account data.": "Waarschuwing: Deze versie van het spel is beperkt tot oude accountgegevens; gegevens kunnen ontbreken of verouderd lijken.\nUpgrade naar een nieuwere versie van het spel om je meest recente accountgegevens te bekijken.",
|
||||
"Would you like to link your device account to this one?\n\nYour device account is ${ACCOUNT1}\nThis account is ${ACCOUNT2}\n\nThis will allow you to keep your existing progress.\nWarning: this cannot be undone!\n": "Wilt u uw apparaat account hieraan koppelen?\n\nUw apparaat account is ${ACCOUNT1}\nDit account is ${ACCOUNT2}\n\nDit zal u toelaten om uw bestaande vooruitgang te houden.\nWaarschuwing: dit kan niet ongedaan gemaakt worden!",
|
||||
"You already own this!": "U bezit dit al!",
|
||||
"You can join in ${COUNT} seconds.": "Je kan meedoen in ${COUNT} seconden.",
|
||||
"You don't have enough tickets for this!": "U heeft hier niet genoeg tickets voor!",
|
||||
"You don't own that.": "Je bezit dat niet.",
|
||||
"You got ${COUNT} tickets!": "U krijgt ${COUNT} tickets!",
|
||||
"You got a ${ITEM}!": "U hebt een ${ITEM}!",
|
||||
"You got ${COUNT} tickets!": "Je krijgt ${COUNT} tickets!",
|
||||
"You got ${COUNT} tokens!": "Je krijgt ${COUNT} tokens!",
|
||||
"You got a ${ITEM}!": "Je krijgt een ${ITEM}!",
|
||||
"You got a chest!": "Je hebt een schatkist!",
|
||||
"You got an achievement reward!": "Je krijgt een prestatie beloning!",
|
||||
"You have been promoted to a new league; congratulations!": "U bent gepromoveerd naar een nieuwe competitie; gefeliciteerd!",
|
||||
"You lost a chest! (All your chest slots were full)": "Je bent een schatkist verloren! (Alle plaatsen waren vol)",
|
||||
"You must update the app to view this.": "Je moet de app updaten om dit te bekijken.",
|
||||
"You must update to a newer version of the app to do this.": "Om dit te kunnen doen moet u de app updaten naar een nieuwere versie.",
|
||||
"You must update to the newest version of the game to do this.": "Je moet dit bijwerken naar de nieuwste versie van het spel.",
|
||||
"You must wait a few seconds before entering a new code.": "U moet een paar seconden wachten voordat een nieuwe code ingevoerd kan worden.",
|
||||
"You placed #${RANK} in a tournament!": "Je hebt plaats #${RANK} in een toernooi!",
|
||||
"You ranked #${RANK} in the last tournament. Thanks for playing!": "U eindigde op rang #${RANK} in het laatste toernooi. Bedankt voor het spelen!",
|
||||
"Your account was rejected. Are you signed in?": "Je account is geweigerd. Ben je ingelogd?",
|
||||
"Your ad views are not registering. Ad options will be limited for a while.": "Je bekeken advertenties worden niet geregistreerd. Advertentie opties worden voorlopig beperkt.",
|
||||
"Your copy of the game has been modified.\nPlease revert any changes and try again.": "Uw versie van het spel is aangepast.\nMaakt de veranderingen ongedaan en probeer het opnieuw.",
|
||||
"Your friend code was used by ${ACCOUNT}": "Uw Vriend code is gebruikt door ${ACCOUNT}"
|
||||
},
|
||||
|
|
@ -1918,7 +2017,9 @@
|
|||
"toSkipPressAnythingText": "(tik of druk op iets om de les over te slaan)"
|
||||
},
|
||||
"twoKillText": "TWEE VLIEGEN IN 1 KLAP!",
|
||||
"uiScaleText": "UI-Schaal",
|
||||
"unavailableText": "niet beschikbaar",
|
||||
"unclaimedPrizesText": "Je hebt niet-opgehaalde prijzen!",
|
||||
"unconfiguredControllerDetectedText": "Niet geconfigureerde controller ontdekt:",
|
||||
"unlockThisInTheStoreText": "Hiervoor moet een aankoop gedaan worden in de winkel.",
|
||||
"unlockThisProfilesText": "Om meer dan ${NUM} profielen te maken heb je nodig:",
|
||||
|
|
@ -1931,10 +2032,13 @@
|
|||
"upgradeText": "Opwaarderen",
|
||||
"upgradeToPlayText": "Ontgrendel \"${PRO}\" in de winkel binnen het spel om dit te spelen.",
|
||||
"useDefaultText": "Gebruik Standaard",
|
||||
"userSystemScriptsCreateText": "Maak Gebruiker Systeem Scripts",
|
||||
"userSystemScriptsDeleteText": "Verwijder Gebruiker Systeem Scripts",
|
||||
"usesExternalControllerText": "Dit spel maakt gebruik van een externe controller als input.",
|
||||
"usingItunesText": "De muziek app wordt gebruikt voor de muziek...",
|
||||
"usingItunesTurnRepeatAndShuffleOnText": "Zorg er er voor dat shuffle AAN staat en herhalen op ALLES staat in iTunes.",
|
||||
"v2AccountLinkingInfoText": "Om V2-accounts te koppelen, gebruikt u de knop 'Account beheren'.",
|
||||
"v2AccountRequiredText": "Dit vereist een V2 account, upgrade uw account en probeer opnieuw.",
|
||||
"validatingBetaText": "Beta wordt Gevalideerd...",
|
||||
"validatingTestBuildText": "Valideren Test Versie...",
|
||||
"viaText": "via",
|
||||
|
|
@ -2012,5 +2116,6 @@
|
|||
},
|
||||
"yesAllowText": "Ja, Toestaan!",
|
||||
"yourBestScoresText": "Uw Beste Scores",
|
||||
"yourBestTimesText": "Uw Beste Tijden"
|
||||
"yourBestTimesText": "Uw Beste Tijden",
|
||||
"yourPrizeText": "Jouw prijs:"
|
||||
}
|
||||
123
dist/ba_data/data/languages/english.json
vendored
123
dist/ba_data/data/languages/english.json
vendored
|
|
@ -6,7 +6,9 @@
|
|||
"campaignProgressText": "Campaign Progress [Hard]: ${PROGRESS}",
|
||||
"changeOncePerSeason": "You can only change this once per season.",
|
||||
"changeOncePerSeasonError": "You must wait until next season to change this again (${NUM} days)",
|
||||
"createAnAccountText": "Create an Account",
|
||||
"customName": "Custom Name",
|
||||
"deleteAccountText": "Delete Account",
|
||||
"googlePlayGamesAccountSwitchText": "If you want to use a different Google account,\nuse the Google Play Games app to switch.",
|
||||
"linkAccountsEnterCodeText": "Enter Code",
|
||||
"linkAccountsGenerateCodeText": "Generate Code",
|
||||
|
|
@ -28,7 +30,7 @@
|
|||
"signInWithDeviceText": "Sign in with device account",
|
||||
"signInWithText": "Sign in with ${SERVICE}",
|
||||
"signInWithV2InfoText": "(an account that works on all platforms)",
|
||||
"signInWithV2Text": "Sign in with a BombSquad account",
|
||||
"signInWithV2Text": "Sign in with a ${APP_NAME} account",
|
||||
"signOutText": "Sign Out",
|
||||
"signingInText": "Signing in...",
|
||||
"signingOutText": "Signing out...",
|
||||
|
|
@ -336,6 +338,8 @@
|
|||
"allowText": "Allow",
|
||||
"alreadySignedInText": "Your account is signed in from another device;\nplease switch accounts or close the game on your\nother devices and try again.",
|
||||
"apiVersionErrorText": "Can't load module ${NAME}; it targets api-version ${VERSION_USED}; we require ${VERSION_REQUIRED}.",
|
||||
"applyText": "Apply",
|
||||
"areYouSureText": "Are you sure?",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(\"Auto\" enables this only when headphones are plugged in)",
|
||||
"headRelativeVRAudioText": "Head-Relative VR Audio",
|
||||
|
|
@ -358,14 +362,23 @@
|
|||
"boostText": "Boost",
|
||||
"bsRemoteConfigureInAppText": "${REMOTE_APP_NAME} is configured in the app itself.",
|
||||
"buttonText": "button",
|
||||
"canWeDebugText": "Would you like BombSquad to automatically report\nbugs, crashes, and basic usage info to the developer?\n\nThis data contains no personal information and helps\nkeep the game running smoothly and bug-free.\n",
|
||||
"canWeDebugText": "Would you like ${APP_NAME} to automatically report\nbugs, crashes, and basic usage info to the developer?\n\nThis data contains no personal information and helps\nkeep the game running smoothly and bug-free.\n",
|
||||
"cancelText": "Cancel",
|
||||
"cantConfigureDeviceText": "Sorry, ${DEVICE} is not configurable.",
|
||||
"challengeEndedText": "This challenge has ended.",
|
||||
"chatMuteText": "Mute Chat",
|
||||
"chatMutedText": "Chat Muted",
|
||||
"chatUnMuteText": "Unmute Chat",
|
||||
"chests": {
|
||||
"prizeOddsText": "Prize Odds",
|
||||
"reduceWaitText": "Reduce Wait",
|
||||
"slotDescriptionText": "This slot can hold a chest.\n\nEarn chests by playing campaign levels,\nplacing in tournaments, and completing\nachievements.",
|
||||
"slotText": "Chest Slot ${NUM}",
|
||||
"slotsFullWarningText": "WARNING: All your chest slots are full.\nAny chests you earn this game will be lost.",
|
||||
"unlocksInText": "Unlocks In"
|
||||
},
|
||||
"choosingPlayerText": "<choosing player>",
|
||||
"claimText": "Claim",
|
||||
"codesExplainText": "Codes are provided by the developer to\ndiagnose and correct account issues.",
|
||||
"completeThisLevelToProceedText": "You must complete\nthis level to proceed!",
|
||||
"completionBonusText": "Completion Bonus",
|
||||
|
|
@ -563,6 +576,7 @@
|
|||
"disableXInputDescriptionText": "Allows more than 4 controllers but may not work as well.",
|
||||
"disableXInputText": "Disable XInput",
|
||||
"disabledText": "Disabled",
|
||||
"discardText": "Discard",
|
||||
"discordFriendsText": "Want to look for new people to play with?\nJoin our Discord and find new friends!",
|
||||
"discordJoinText": "Join the Discord",
|
||||
"doneText": "Done",
|
||||
|
|
@ -645,6 +659,8 @@
|
|||
"errorText": "Error",
|
||||
"errorUnknownText": "unknown error",
|
||||
"exitGameText": "Exit ${APP_NAME}?",
|
||||
"expiredAgoText": "Expired ${T} ago",
|
||||
"expiresInText": "Expires in ${T}",
|
||||
"exportSuccessText": "'${NAME}' exported.",
|
||||
"externalStorageText": "External Storage",
|
||||
"failText": "Fail",
|
||||
|
|
@ -704,6 +720,7 @@
|
|||
"copyCodeConfirmText": "Code copied to clipboard.",
|
||||
"copyCodeText": "Copy Code",
|
||||
"dedicatedServerInfoText": "For best results, set up a dedicated server. See bombsquadgame.com/server to learn how.",
|
||||
"descriptionShortText": "Use the gather window to assemble a party.",
|
||||
"disconnectClientsText": "This will disconnect the ${COUNT} player(s)\nin your party. Are you sure?",
|
||||
"earnTicketsForRecommendingAmountText": "Friends will receive ${COUNT} tickets if they try the game\n(and you will receive ${YOU_COUNT} for each who does)",
|
||||
"earnTicketsForRecommendingText": "Share the game\nfor free tickets...",
|
||||
|
|
@ -813,6 +830,12 @@
|
|||
"youHaveShortText": "you have ${COUNT}",
|
||||
"youHaveText": "you have ${COUNT} tickets"
|
||||
},
|
||||
"goldPass": {
|
||||
"desc1InfTokensText": "Infinite tokens.",
|
||||
"desc2NoAdsText": "No ads.",
|
||||
"desc3ForeverText": "Forever.",
|
||||
"goldPassText": "Gold Pass"
|
||||
},
|
||||
"googlePlayPurchasesNotAvailableText": "Google Play purchases are not available.\nYou may need to update your store app.",
|
||||
"googlePlayServicesNotAvailableText": "Google Play Services is not available.\nSome app functionality may be disabled.",
|
||||
"googlePlayText": "Google Play",
|
||||
|
|
@ -894,6 +917,7 @@
|
|||
"importText": "Import",
|
||||
"importingText": "Importing...",
|
||||
"inGameClippedNameText": "in-game will be\n\"${NAME}\"",
|
||||
"inboxText": "Inbox",
|
||||
"installDiskSpaceErrorText": "ERROR: Unable to complete the install.\nYou may be out of space on your device.\nClear some space and try again.",
|
||||
"internal": {
|
||||
"arrowsToExitListText": "press ${LEFT} or ${RIGHT} to exit list",
|
||||
|
|
@ -948,12 +972,14 @@
|
|||
"timeOutText": "(times out in ${TIME} seconds)",
|
||||
"touchScreenJoinWarningText": "You have joined with the touchscreen.\nIf this was a mistake, tap 'Menu->Leave Game' with it.",
|
||||
"touchScreenText": "TouchScreen",
|
||||
"unableToCompleteTryAgainText": "Unable to complete this right now.\nPlease try again.",
|
||||
"unableToResolveHostText": "Error: unable to resolve host.",
|
||||
"unavailableNoConnectionText": "This is currently unavailable (no internet connection?)",
|
||||
"vrOrientationResetCardboardText": "Use this to reset the VR orientation.\nTo play the game you'll need an external controller.",
|
||||
"vrOrientationResetText": "VR orientation reset.",
|
||||
"willTimeOutText": "(will time out if idle)"
|
||||
},
|
||||
"inventoryText": "Inventory",
|
||||
"jumpBoldText": "JUMP",
|
||||
"jumpText": "Jump",
|
||||
"keepText": "Keep",
|
||||
|
|
@ -1000,8 +1026,11 @@
|
|||
"seasonEndsMinutesText": "Season ends in ${NUMBER} minutes.",
|
||||
"seasonText": "Season ${NUMBER}",
|
||||
"tournamentLeagueText": "You must reach ${NAME} league to enter this tournament.",
|
||||
"trophyCountsResetText": "Trophy counts will reset next season."
|
||||
"trophyCountsResetText": "Trophy counts will reset next season.",
|
||||
"upToDateBonusDescriptionText": "Players running a recent version of the\ngame receive a ${PERCENT}% bonus here.",
|
||||
"upToDateBonusText": "Up-To-Date Bonus"
|
||||
},
|
||||
"learnMoreText": "Learn More",
|
||||
"levelBestScoresText": "Best scores on ${LEVEL}",
|
||||
"levelBestTimesText": "Best times on ${LEVEL}",
|
||||
"levelIsLockedText": "${LEVEL} is locked.",
|
||||
|
|
@ -1045,6 +1074,8 @@
|
|||
"modeArcadeText": "Arcade Mode",
|
||||
"modeClassicText": "Classic Mode",
|
||||
"modeDemoText": "Demo Mode",
|
||||
"moreSoonText": "More coming soon...",
|
||||
"mostDestroyedPlayerText": "Most Destroyed Player",
|
||||
"mostValuablePlayerText": "Most Valuable Player",
|
||||
"mostViolatedPlayerText": "Most Violated Player",
|
||||
"mostViolentPlayerText": "Most Violent Player",
|
||||
|
|
@ -1061,6 +1092,7 @@
|
|||
"nameSuicideText": "${NAME} committed suicide.",
|
||||
"nameText": "Name",
|
||||
"nativeText": "Native",
|
||||
"newExclaimText": "New!",
|
||||
"newPersonalBestText": "New personal best!",
|
||||
"newTestBuildAvailableText": "A newer test build is available! (${VERSION} build ${BUILD}).\nGet it at ${ADDRESS}",
|
||||
"newText": "New",
|
||||
|
|
@ -1071,6 +1103,7 @@
|
|||
"noContinuesText": "(no continues)",
|
||||
"noExternalStorageErrorText": "No external storage found on this device",
|
||||
"noGameCircleText": "Error: not logged into GameCircle",
|
||||
"noMessagesText": "No messages.",
|
||||
"noPluginsInstalledText": "No Plugins Installed",
|
||||
"noScoresYetText": "No scores yet.",
|
||||
"noServersFoundText": "No servers found.",
|
||||
|
|
@ -1079,6 +1112,7 @@
|
|||
"noValidMapsErrorText": "No valid maps found for this game type.",
|
||||
"notEnoughPlayersRemainingText": "Not enough players remaining; exit and start a new game.",
|
||||
"notEnoughPlayersText": "You need at least ${COUNT} players to start this game!",
|
||||
"notEnoughTicketsText": "Not enough tickets!",
|
||||
"notNowText": "Not Now",
|
||||
"notSignedInErrorText": "You must sign in to do this.",
|
||||
"notSignedInGooglePlayErrorText": "You must sign in with Google Play to do this.",
|
||||
|
|
@ -1091,6 +1125,9 @@
|
|||
"onText": "On",
|
||||
"oneMomentText": "One Moment...",
|
||||
"onslaughtRespawnText": "${PLAYER} will respawn in wave ${WAVE}",
|
||||
"openMeText": "Open Me!",
|
||||
"openNowText": "Open Now",
|
||||
"openText": "Open",
|
||||
"orText": "${A} or ${B}",
|
||||
"otherText": "Other...",
|
||||
"outOfText": "(#${RANK} out of ${ALL})",
|
||||
|
|
@ -1177,6 +1214,8 @@
|
|||
"punchText": "Punch",
|
||||
"purchaseForText": "Purchase for ${PRICE}",
|
||||
"purchaseGameText": "Purchase Game",
|
||||
"purchaseNeverAvailableText": "Sorry, purchases are not available on this build.\nTry signing into your account on another platform and making purchases from there.",
|
||||
"purchaseNotAvailableText": "This purchase is not available.",
|
||||
"purchasingText": "Purchasing...",
|
||||
"quitGameText": "Quit ${APP_NAME}?",
|
||||
"quittingIn5SecondsText": "Quitting in 5 seconds...",
|
||||
|
|
@ -1218,6 +1257,7 @@
|
|||
"version_mismatch": "Version mismatch.\nMake sure BombSquad and BombSquad Remote\nare the latest versions and try again."
|
||||
},
|
||||
"removeInGameAdsText": "Unlock \"${PRO}\" in the store to remove in-game ads.",
|
||||
"removeInGameAdsTokenPurchaseText": "LIMITED TIME OFFER: Purchase ANY token pack to remove in-game ads.",
|
||||
"renameText": "Rename",
|
||||
"replayEndText": "End Replay",
|
||||
"replayNameDefaultText": "Last Game Replay",
|
||||
|
|
@ -1276,6 +1316,8 @@
|
|||
"enterPromoCodeText": "Enter Code",
|
||||
"forTestingText": "Note: these values are only for testing and will be lost when the app exits.",
|
||||
"helpTranslateText": "${APP_NAME}'s non-English translations are a community\nsupported effort. If you'd like to contribute or correct\na translation, follow the link below. Thanks in advance!",
|
||||
"insecureConnectionsDescriptionText": "not recommended, but may allow online play\nfrom restricted countries or networks",
|
||||
"insecureConnectionsText": "Use insecure connections",
|
||||
"kickIdlePlayersText": "Kick idle players",
|
||||
"kidFriendlyModeText": "Kid-Friendly Mode (reduced violence, etc)",
|
||||
"languageText": "Language",
|
||||
|
|
@ -1335,6 +1377,7 @@
|
|||
},
|
||||
"spaceKeyText": "space",
|
||||
"statsText": "Stats",
|
||||
"stopRemindingMeText": "Stop Reminding Me",
|
||||
"storagePermissionAccessText": "This requires storage access",
|
||||
"store": {
|
||||
"alreadyOwnText": "You already own ${NAME}!",
|
||||
|
|
@ -1344,7 +1387,6 @@
|
|||
"charactersText": "Characters",
|
||||
"comingSoonText": "Coming Soon...",
|
||||
"extrasText": "Extras",
|
||||
"freeBombSquadProText": "BombSquad is now free, but since you originally purchased it you are\nreceiving the BombSquad Pro upgrade and ${COUNT} tickets as a thank-you.\nEnjoy the new features, and thank you for your support!\n-Eric",
|
||||
"holidaySpecialText": "Holiday Special",
|
||||
"howToSwitchCharactersText": "(go to \"${SETTINGS} -> ${PLAYER_PROFILES}\" to assign & customize characters)",
|
||||
"howToUseIconsText": "(create global player profiles (in the account window) to use these)",
|
||||
|
|
@ -1393,6 +1435,7 @@
|
|||
"testBuildValidatedText": "Test Build Validated; Enjoy!",
|
||||
"thankYouText": "Thank you for your support! Enjoy the game!!",
|
||||
"threeKillText": "TRIPLE KILL!!",
|
||||
"ticketsDescriptionText": "Tickets can be used to unlock characters,\nmaps, minigames, and more in the store.\n\nTickets can be found in chests won through\ncampaigns, tournaments, and achievements.",
|
||||
"timeBonusText": "Time Bonus",
|
||||
"timeElapsedText": "Time Elapsed",
|
||||
"timeExpiredText": "Time Expired",
|
||||
|
|
@ -1403,10 +1446,24 @@
|
|||
"tipText": "Tip",
|
||||
"titleText": "BombSquad",
|
||||
"titleVRText": "BombSquad VR",
|
||||
"tokens": {
|
||||
"getTokensText": "Get Tokens",
|
||||
"notEnoughTokensText": "Not enough tokens!",
|
||||
"numTokensText": "${COUNT} Tokens",
|
||||
"openNowDescriptionText": "You have enough tokens to\nopen this now - you don't\nneed to wait.",
|
||||
"shinyNewCurrencyText": "BombSquad's shiny new currency.",
|
||||
"tokenPack1Text": "Small Token Pack",
|
||||
"tokenPack2Text": "Medium Token Pack",
|
||||
"tokenPack3Text": "Large Token Pack",
|
||||
"tokenPack4Text": "Jumbo Token Pack",
|
||||
"tokensDescriptionText": "Tokens are used to speed up chest unlocks\nand for other game and account features.\n\nYou can win tokens in the game or buy them\nin packs. Or buy a Gold Pass for infinite\ntokens and never hear about them again.",
|
||||
"youHaveGoldPassText": "You have a Gold Pass.\nAll token purchases are free.\nEnjoy!"
|
||||
},
|
||||
"topFriendsText": "Top Friends",
|
||||
"tournamentCheckingStateText": "Checking tournament state; please wait...",
|
||||
"tournamentEndedText": "This tournament has ended. A new one will start soon.",
|
||||
"tournamentEntryText": "Tournament Entry",
|
||||
"tournamentFinalStandingsText": "Final Standings",
|
||||
"tournamentResultsRecentText": "Recent Tournament Results",
|
||||
"tournamentStandingsText": "Tournament Standings",
|
||||
"tournamentText": "Tournament",
|
||||
|
|
@ -1462,6 +1519,18 @@
|
|||
"Uber Onslaught": null,
|
||||
"Uber Runaround": null
|
||||
},
|
||||
"displayItemNames": {
|
||||
"${C} Tickets": null,
|
||||
"${C} Tokens": null,
|
||||
"Chest": null,
|
||||
"L1 Chest": null,
|
||||
"L2 Chest": null,
|
||||
"L3 Chest": null,
|
||||
"L4 Chest": null,
|
||||
"L5 Chest": null,
|
||||
"L6 Chest": null,
|
||||
"Unknown Chest": null
|
||||
},
|
||||
"gameDescriptions": {
|
||||
"Be the chosen one for a length of time to win.\nKill the chosen one to become it.": null,
|
||||
"Bomb as many targets as you can.": null,
|
||||
|
|
@ -1544,8 +1613,8 @@
|
|||
"languages": {
|
||||
"Arabic": null,
|
||||
"Belarussian": null,
|
||||
"Chinese": "Chinese Simplified",
|
||||
"ChineseTraditional": "Chinese Traditional",
|
||||
"ChineseSimplified": "Chinese - Simplified",
|
||||
"ChineseTraditional": "Chinese - Traditional",
|
||||
"Croatian": null,
|
||||
"Czech": null,
|
||||
"Danish": null,
|
||||
|
|
@ -1566,13 +1635,16 @@
|
|||
"Korean": null,
|
||||
"Malay": null,
|
||||
"Persian": null,
|
||||
"PirateSpeak": "Pirate Speak",
|
||||
"Polish": null,
|
||||
"Portuguese": null,
|
||||
"PortugueseBrazil": "Portuguese - Brazil",
|
||||
"PortuguesePortugal": "Portuguese - Portugal",
|
||||
"Romanian": null,
|
||||
"Russian": null,
|
||||
"Serbian": null,
|
||||
"Slovak": null,
|
||||
"Spanish": null,
|
||||
"SpanishLatinAmerica": "Spanish - Latin America",
|
||||
"SpanishSpain": "Spanish - Spain",
|
||||
"Swedish": null,
|
||||
"Tamil": null,
|
||||
"Thai": null,
|
||||
|
|
@ -1637,6 +1709,7 @@
|
|||
"Cheating detected; scores and prizes suspended for ${COUNT} days.": null,
|
||||
"Could not establish a secure connection.": null,
|
||||
"Daily maximum reached.": null,
|
||||
"Daily sign-in reward": null,
|
||||
"Entering tournament...": null,
|
||||
"Invalid code.": null,
|
||||
"Invalid payment; purchase canceled.": null,
|
||||
|
|
@ -1646,11 +1719,14 @@
|
|||
"Item unlocked!": null,
|
||||
"LINKING DENIED. ${ACCOUNT} contains\nsignificant data that would ALL BE LOST.\nYou can link in the opposite order if you'd like\n(and lose THIS account's data instead)": null,
|
||||
"Link account ${ACCOUNT} to this account?\nAll existing data on ${ACCOUNT} will be lost.\nThis can not be undone. Are you sure?": null,
|
||||
"Longer streaks lead to better rewards.": null,
|
||||
"Max number of playlists reached.": null,
|
||||
"Max number of profiles reached.": null,
|
||||
"Maximum friend code rewards reached.": null,
|
||||
"Message is too long.": null,
|
||||
"New tournament result!": null,
|
||||
"No servers are available. Please try again soon.": null,
|
||||
"No slots available. Free a slot and try again.": null,
|
||||
"Profile \"${NAME}\" upgraded successfully.": null,
|
||||
"Profile could not be upgraded.": null,
|
||||
"Purchase successful!": null,
|
||||
|
|
@ -1660,7 +1736,9 @@
|
|||
"Sorry, this code has already been used.": null,
|
||||
"Sorry, this code has expired.": null,
|
||||
"Sorry, this code only works for new accounts.": null,
|
||||
"Sorry, this has expired.": null,
|
||||
"Still searching for nearby servers; please try again soon.": null,
|
||||
"Streak: ${NUM} days": null,
|
||||
"Temporarily unavailable; please try again later.": null,
|
||||
"The tournament ended before you finished.": null,
|
||||
"This account cannot be unlinked for ${NUM} days.": null,
|
||||
|
|
@ -1671,19 +1749,28 @@
|
|||
"Tournaments require ${VERSION} or newer": null,
|
||||
"Unlink ${ACCOUNT} from this account?\nAll data on ${ACCOUNT} will be reset.\n(except for achievements in some cases)": null,
|
||||
"WARNING: complaints of hacking have been issued against your account.\nAccounts found to be hacking will be banned. Please play fair.": null,
|
||||
"Wait reduced!": null,
|
||||
"Warning: This version of the game is limited to old account data; things may appear missing or out of date.\nPlease upgrade to a newer version of the game to see your latest account data.": null,
|
||||
"Would you like to link your device account to this one?\n\nYour device account is ${ACCOUNT1}\nThis account is ${ACCOUNT2}\n\nThis will allow you to keep your existing progress.\nWarning: this cannot be undone!\n": null,
|
||||
"You already own this!": null,
|
||||
"You can join in ${COUNT} seconds.": null,
|
||||
"You don't have enough tickets for this!": null,
|
||||
"You don't own that.": null,
|
||||
"You got ${COUNT} tickets!": null,
|
||||
"You got ${COUNT} tokens!": null,
|
||||
"You got a ${ITEM}!": null,
|
||||
"You got a chest!": null,
|
||||
"You got an achievement reward!": null,
|
||||
"You have been promoted to a new league; congratulations!": null,
|
||||
"You lost a chest! (All your chest slots were full)": null,
|
||||
"You must update the app to view this.": null,
|
||||
"You must update to a newer version of the app to do this.": null,
|
||||
"You must update to the newest version of the game to do this.": null,
|
||||
"You must wait a few seconds before entering a new code.": null,
|
||||
"You placed #${RANK} in a tournament!": null,
|
||||
"You ranked #${RANK} in the last tournament. Thanks for playing!": null,
|
||||
"Your account was rejected. Are you signed in?": null,
|
||||
"Your ad views are not registering. Ad options will be limited for a while.": null,
|
||||
"Your copy of the game has been modified.\nPlease revert any changes and try again.": null,
|
||||
"Your friend code was used by ${ACCOUNT}": null
|
||||
},
|
||||
|
|
@ -1834,6 +1921,7 @@
|
|||
"twoKillText": "DOUBLE KILL!",
|
||||
"uiScaleText": "UI Scale",
|
||||
"unavailableText": "unavailable",
|
||||
"unclaimedPrizesText": "You have unclaimed prizes!",
|
||||
"unconfiguredControllerDetectedText": "Unconfigured controller detected:",
|
||||
"unlockThisInTheStoreText": "This must be unlocked in the store.",
|
||||
"unlockThisProfilesText": "To create more than ${NUM} profiles, you need:",
|
||||
|
|
@ -1851,6 +1939,7 @@
|
|||
"usesExternalControllerText": "This game uses an external controller for input.",
|
||||
"usingItunesText": "Using Music App for soundtrack...",
|
||||
"v2AccountLinkingInfoText": "To link V2 accounts, use the 'Manage Account' button.",
|
||||
"v2AccountRequiredText": "This requires a V2 account. Upgrade your account and try again.",
|
||||
"validatingTestBuildText": "Validating Test Build...",
|
||||
"viaText": "via",
|
||||
"victoryText": "Victory!",
|
||||
|
|
@ -1885,21 +1974,6 @@
|
|||
"waveText": "Wave",
|
||||
"wellSureText": "Well Sure!",
|
||||
"whatIsThisText": "What is this?",
|
||||
"wiimoteLicenseWindow": {
|
||||
"titleText": "DarwiinRemote Copyright"
|
||||
},
|
||||
"wiimoteListenWindow": {
|
||||
"listeningText": "Listening For Wiimotes...",
|
||||
"pressText": "Press Wiimote buttons 1 and 2 simultaneously.\n",
|
||||
"pressText2": "On newer Wiimotes with Motion Plus built in, press the red 'sync' button on the back instead."
|
||||
},
|
||||
"wiimoteSetupWindow": {
|
||||
"copyrightText": "DarwiinRemote Copyright",
|
||||
"listenText": "Listen",
|
||||
"macInstructionsText": "Make sure your Wii is off and Bluetooth is enabled\non your Mac, then press 'Listen'. Wiimote support can\nbe a bit flaky, so you may have to try a few times\nbefore you get a connection.\n\nBluetooth should handle up to 7 connected devices,\nthough your mileage may vary.\n\nBombSquad supports the original Wiimotes, Nunchuks,\nand the Classic Controller.\nThe newer Wii Remote Plus now works too\nbut not with attachments.",
|
||||
"thanksText": "Thanks to the DarwiinRemote team\nFor making this possible.\n",
|
||||
"titleText": "Wiimote Setup"
|
||||
},
|
||||
"winsPlayerText": "${NAME} Wins!",
|
||||
"winsTeamText": "${NAME} Wins!",
|
||||
"winsText": "${NAME} Wins!",
|
||||
|
|
@ -1910,5 +1984,6 @@
|
|||
"worldsBestTimesText": "World's Best Times",
|
||||
"yesAllowText": "Yes, Allow!",
|
||||
"yourBestScoresText": "Your Best Scores",
|
||||
"yourBestTimesText": "Your Best Times"
|
||||
"yourBestTimesText": "Your Best Times",
|
||||
"yourPrizeText": "Your prize:"
|
||||
}
|
||||
312
dist/ba_data/data/languages/filipino.json
vendored
312
dist/ba_data/data/languages/filipino.json
vendored
|
|
@ -1,12 +1,14 @@
|
|||
{
|
||||
"accountSettingsWindow": {
|
||||
"accountNameRules": "Bawal ang pangalan na may emoji o mga ibang nakakaibang titik.",
|
||||
"accountNameRules": "Ang pangalan ay hindi dapat naglalaman ng emoji o ano mang uri ng simbolo",
|
||||
"accountsText": "Mga Account",
|
||||
"achievementProgressText": "Mga Nakamtan: ${COUNT} sa ${TOTAL}",
|
||||
"campaignProgressText": "Ang Progreso sa Kampanya [Mahirap]: ${PROGRESS}",
|
||||
"changeOncePerSeason": "Mapapalit mo lang ito isang beses kada season",
|
||||
"changeOncePerSeasonError": "Kailangan mo muna maghintay ng susunod na panahon para mapalitan ito. (${NUM} na araw)",
|
||||
"createAnAccountText": "Gumawa ng account",
|
||||
"customName": "Sariling Pangalan",
|
||||
"deleteAccountText": "Burahin ang Account",
|
||||
"googlePlayGamesAccountSwitchText": "Kung gusto mong gamitin ang iba ninyong Google Account, \nkailangan mo gamitin ang Google Play Games app upang maipalit ito.",
|
||||
"linkAccountsEnterCodeText": "Ilagay ang Kowd",
|
||||
"linkAccountsGenerateCodeText": "Gumawa ng Kowd",
|
||||
|
|
@ -19,21 +21,21 @@
|
|||
"nameChangeConfirm": "Ipalitan ang pangalan ng iyong account sa ${NAME}?",
|
||||
"resetProgressConfirmNoAchievementsText": "Ibabalik nito sa dati ang iyong pag-usad,\nat lokal na mga iskor (parehas lamang ang bilang ng iyong tiket).\nHindi ito maibabalik. Ipagpatuloy pa rin?",
|
||||
"resetProgressConfirmText": "Maaaring maulit ang iyong pag-usad,\nmga nakamtan, at lokal na mga matataas na iskor\n(ngunit Hindi ang mga tiket). Hindi na ito maibabalik sa dati\nulit. Ipagpatuloy pa rin?",
|
||||
"resetProgressText": "Magpanibago ng Progreso",
|
||||
"resetProgressText": "Ulitin ang Progreso",
|
||||
"setAccountName": "Itakda ang Pangalan ng Account",
|
||||
"setAccountNameDesc": "Piliin ang pangalan na ipapakita para sa iyong account.\nMaaari mong gamitin ang pangalan mula sa isa sa iyong mga naka-link \nna account o lumikha ng isang natatanging pasadyang pangalan.",
|
||||
"signInInfoText": "Pumasok o gumawa nang account para kumolekta ng mga ticket, makipagkompetensya online,\nat makabahagi ng pag-usad sa iba't ibang mga device.",
|
||||
"signInText": "Pumasok sa account",
|
||||
"signInWithAnEmailAddressText": "Pumasok gamit ang email address",
|
||||
"signInWithDeviceInfoText": "(automatic account na magagamit lamang sa device na ito)",
|
||||
"signInWithDeviceInfoText": "(kusang account na ginagamit lamang sa device na ito.)",
|
||||
"signInWithDeviceText": "Pumasok gamit ang device account",
|
||||
"signInWithGameCircleText": "Pumasok sa account gamit ang Game Circle",
|
||||
"signInWithGooglePlayText": "Pumasok sa account gamit ang Google Play",
|
||||
"signInWithTestAccountInfoText": "(uri ng legacy account; gamitin ang mga account ng device na pasulong)",
|
||||
"signInWithTestAccountText": "Pumasok gamit ang test account",
|
||||
"signInWithText": "Mag sign in gamit ang ${SERVICE}",
|
||||
"signInWithV2InfoText": "(ang account na gumagana sa lahat ng platforms)",
|
||||
"signInWithV2Text": "Pumasok gamit ang BombSquad account",
|
||||
"signInWithText": "Pumasok gamit ang ${SERVICE}",
|
||||
"signInWithV2InfoText": "(ang account na pwede gamitin sa lahat ng plataporma)",
|
||||
"signInWithV2Text": "Pumasok gamit ang ${APP_NAME} account",
|
||||
"signOutText": "Umalis",
|
||||
"signingInText": "Pumapasok sa account...",
|
||||
"signingOutText": "Umaalis sa account...",
|
||||
|
|
@ -43,8 +45,8 @@
|
|||
"unlinkAccountsText": "Tanggalin ang mga account",
|
||||
"unlinkLegacyV1AccountsText": "Tanggalin ang mga Legacy (V1) na mga Account",
|
||||
"v2LinkInstructionsText": "Gamitin ang link na ito para gumawa ng account o pumasok sa account.",
|
||||
"viaAccount": "(sa pamamagitan ng manlalaro ${NAME})",
|
||||
"youAreSignedInAsText": "Nakapasok bilang si:"
|
||||
"viaAccount": "(sa pamamagitan ng ${NAME})",
|
||||
"youAreSignedInAsText": "Nakapasok bilang:"
|
||||
},
|
||||
"achievementChallengesText": "Mga Hamon sa Pagkamit",
|
||||
"achievementText": "Nakamtan",
|
||||
|
|
@ -341,6 +343,8 @@
|
|||
"allowText": "Payagin",
|
||||
"alreadySignedInText": "Ang iyong account ay naka-sign in mula sa isa pang device;\nMangyaring lumipat ng mga accounts o isara ang laro sa iyong\niba pang mga device at subukan muli.",
|
||||
"apiVersionErrorText": "Hindi ma-load ang module ${NAME}; naka-target ang api-version ${VERSION_USED}; kailangan namin ${VERSION_REQUIRED}",
|
||||
"applyText": "Gamitin",
|
||||
"areYouSureText": "Sigurado ka ba?",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(Lalabas ang “Auto” ng ito kapag nakasaksak ang headphones)",
|
||||
"headRelativeVRAudioText": "Head-Relative VR Audio",
|
||||
|
|
@ -363,14 +367,23 @@
|
|||
"boostText": "Palakasin",
|
||||
"bsRemoteConfigureInAppText": "${REMOTE_APP_NAME} naka-configure ito sa mismong app.",
|
||||
"buttonText": "pindutan",
|
||||
"canWeDebugText": "Gusto mo ba na ang BombSquad ay automatic na mag report ng\nbugs, crashes, at mga basic usage na info na i-sent sa developer?\n\nHindi ito naglalaman ng mga personal information at makatulong ito\npara ang laro ay gumagana at bug-free.",
|
||||
"canWeDebugText": "Gusto mo ba na ang ${APP_NAME} ay automatic na mag report ng\nbugs, crashes, at mga basic usage na info na i-sent sa developer?\n\nHindi ito naglalaman ng mga personal information at makatulong ito\npara ang laro ay gumagana at bug-free.",
|
||||
"cancelText": "Kanselahin",
|
||||
"cantConfigureDeviceText": "Pasensya na, ang ${DEVICE} na ito ay hindi ma-configure.",
|
||||
"challengeEndedText": "Natapos na ang challenge na ito.",
|
||||
"chatMuteText": "Tahimikin Ang Chat Mo",
|
||||
"chatMutedText": "Na-mute ang Chat",
|
||||
"chatUnMuteText": "Ipaganahin Mo Na ang Chat",
|
||||
"chests": {
|
||||
"prizeOddsText": "Premyong Panumbasan",
|
||||
"reduceWaitText": "Magbawas ng Oras",
|
||||
"slotDescriptionText": "Ito'y pinaglalaman ng mga baul.\n\nMagtipon ng mga baul sa pamamagitan \nng paglalaro ng kampanya, paligsahan, \nat pagkuha ng mga nakamtan.",
|
||||
"slotText": "Puwang ng Baul ${NUM}",
|
||||
"slotsFullWarningText": "BABALA: Lahat ng mga patlang ng baul ay puno na. \nAng mga baul na natanggap sa ngayon ay mawawala.",
|
||||
"unlocksInText": "Magbubukas sa loob ng"
|
||||
},
|
||||
"choosingPlayerText": "<pumipili ng manlalaro>",
|
||||
"claimText": "Ikunin",
|
||||
"codesExplainText": "Binigay ng isang taong gumagawa ng larong ito ang mga kowd \npara kilalanin at maitama ang mga problema sa account.",
|
||||
"completeThisLevelToProceedText": "Tapusin mo muna\nang antas na ito bago tumuloy!",
|
||||
"completionBonusText": "Bonus sa Pagkumpleto nito:",
|
||||
|
|
@ -425,7 +438,7 @@
|
|||
"secondaryEnableText": "Paganahin",
|
||||
"secondaryText": "Pangalawang Controller",
|
||||
"startButtonActivatesDefaultDescriptionText": "(i-off ito kung ang iyong start button ay higit pa sa isang ‘menu’ button)",
|
||||
"startButtonActivatesDefaultText": "Start Button Activates Defualt Widget",
|
||||
"startButtonActivatesDefaultText": "Ang Pindutang Pagsisimulahin Ay Binubukas Ang Default Widget",
|
||||
"titleText": "Setup ng Controller",
|
||||
"twoInOneSetupText": "2-in-1 na Setup ng Controller",
|
||||
"uiOnlyDescriptionText": "(pigilan ang controller na ito mula sa aktwal na pagsali sa isang laro)",
|
||||
|
|
@ -515,23 +528,23 @@
|
|||
"createText": "Gumawa",
|
||||
"creditsWindow": {
|
||||
"additionalAudioArtIdeasText": "Adisyonal na Pagtugtugin, Sining Pang-aga, at Pagharaya ni ${NAME}",
|
||||
"additionalMusicFromText": "Adisyonal musika galing kay ${NAME}",
|
||||
"additionalMusicFromText": "Adisyonal musika galing sa ${NAME}",
|
||||
"allMyFamilyText": "Lahat sa aking kaibigan at pamilya ko na tumulong sa play test",
|
||||
"codingGraphicsAudioText": "Pagkukudigo, Paggrapikan, at Pagtugtugin ni ${NAME}",
|
||||
"languageTranslationsText": "Pagsasalin Ng Wika:",
|
||||
"legalText": "Ligal:",
|
||||
"publicDomainMusicViaText": "Public-domain music mula sa ${NAME}",
|
||||
"softwareBasedOnText": "Ang software na ito ay batay sa bahagi ng gawain ng ${NAME}",
|
||||
"songCreditText": "${TITLE} Ginawa ni ${PERFORMER}\nBinubuo ni ${COMPOSER}, Inayos ni ${ARRANGER}, Na-publish ni ${PUBLISHER},\nSa kagandahang-loob ng ${SOURCE}",
|
||||
"songCreditText": "${TITLE} Pinagbigkas ng ${PERFORMER}\nBinubuo ni ${COMPOSER}, Inayos ni ${ARRANGER}, Inilathala ng ${PUBLISHER},\nSa kagandahang-loob ng ${SOURCE}",
|
||||
"soundAndMusicText": "Tunog at Musika",
|
||||
"soundsText": "Mga Tunog (${SOURCE}):",
|
||||
"specialThanksText": "Espesyal Na Pasasalamat:",
|
||||
"thanksEspeciallyToText": "Salamat, lalo na kay ${NAME}",
|
||||
"titleText": "${APP_NAME} Mga Kredito",
|
||||
"thanksEspeciallyToText": "Salamat, lalo na ang ${NAME}",
|
||||
"titleText": "${APP_NAME} Karangalan",
|
||||
"whoeverInventedCoffeeText": "At ang sino man na nag-imbento ng kape"
|
||||
},
|
||||
"currentStandingText": "Ang kasalukuyang tayo mo ay #${RANK}",
|
||||
"customizeText": "I-customize...",
|
||||
"customizeText": "Ayusin...",
|
||||
"deathsTallyText": "${COUNT} pagkamatay",
|
||||
"deathsText": "Pagkamatay",
|
||||
"debugText": "debug",
|
||||
|
|
@ -550,11 +563,11 @@
|
|||
"titleText": "Benchmarks at Stress Test",
|
||||
"totalReloadTimeText": "Kabuuhang reload time: ${TIME} (tingnan Ang log para sa mga detalye)"
|
||||
},
|
||||
"defaultGameListNameText": "Default ${PLAYMODE} Playlist",
|
||||
"defaultNewGameListNameText": "Ang aking ${PLAYMODE} Playlist",
|
||||
"defaultGameListNameText": "Orihinal Na Laruhang Pang-${PLAYMODE}",
|
||||
"defaultNewGameListNameText": "Ang Aking Laruhang Pang-${PLAYMODE}",
|
||||
"deleteText": "Tanggalin",
|
||||
"demoText": "Demo",
|
||||
"denyText": "Tanggihan",
|
||||
"denyText": "Tanggihin",
|
||||
"deprecatedText": "Hindi Na Uso",
|
||||
"descriptionText": "Paglalarawan",
|
||||
"desktopResText": "Desktop Res",
|
||||
|
|
@ -568,6 +581,7 @@
|
|||
"disableXInputDescriptionText": "Pumayag ng higit sa 4 na controllers ngunit maaaring hindi mabuti ang kalagay",
|
||||
"disableXInputText": "Disable XInput",
|
||||
"disabledText": "Naka-disabled",
|
||||
"discardText": "Iwaksi",
|
||||
"discordFriendsText": "Gusto mong may kalaro kang mga tao na gusto mo?\nSumali sa aming Discord server at hanapin mo ang kaibiganin mo!",
|
||||
"discordJoinText": "Sumali sa Discord",
|
||||
"doneText": "Tapusin",
|
||||
|
|
@ -594,19 +608,19 @@
|
|||
"colorText": "kulay",
|
||||
"getMoreCharactersText": "Bumili ng Higit pang mga Karakter...",
|
||||
"getMoreIconsText": "Bumili ng Higit pang Tatak...",
|
||||
"globalProfileInfoText": "Ang mga karakter ng manlalaro na panglahatan ay garantisadong magkaroon ng magkaiba na pangalan sa buong mundo.\nMayroon din silang mga ibang tatak.",
|
||||
"globalProfileInfoText": "Ang mga karakter ng manlalaro na panglahatan ay garantisadong magkaroon \nng magkaiba na pangalan sa buong mundo. Mayroon din silang ibang tatak.",
|
||||
"globalProfileText": "(karakter para sa mundo)",
|
||||
"highlightText": "Pangalawang Kulay",
|
||||
"iconText": "tatak",
|
||||
"localProfileInfoText": "Ang mga karakter ng lokal na manlalaro\nay wala silang tatak at ang kanilang \nmga pangalan ay hindi garantisadong pambihira. Idakila para maging isang pinakasikat na karakter at makalaan ng isang pambihira na pangalan at madagdag ang iyong sariling tatak para sa buong mundo.",
|
||||
"localProfileInfoText": "Ang mga karakter ng lokal na manlalaro ay wala silang tatak at ang kanilang \nmga pangalan ay hindi garantisadong pambihira. Idakila iyong pinakasikat\n na karakter at ang sariling pambihirang pangalan at tatak para sa buong mundo.",
|
||||
"localProfileText": "(lokal na karakter)",
|
||||
"nameDescriptionText": "Pangalan Ng Manlalaro",
|
||||
"nameText": "Pangalan",
|
||||
"profileAlreadyExistsText": "Mayroon nang isang manlalaro na may ganyang pangalan.",
|
||||
"randomText": "Basta-basta",
|
||||
"randomText": "basta-basta",
|
||||
"titleEditText": "Ayusin Ang Profile",
|
||||
"titleNewText": "Bagong Profile",
|
||||
"unavailableText": "Meron na o Hindi wasto ang \"${NAME}\" na ito; subukin tawagin ng ibang pangalan.",
|
||||
"unavailableText": "Meron na o Hindi wasto ang \"${NAME}\" na ito; subukin ang ibang pangalan.",
|
||||
"upgradeProfileInfoText": "Irereserba nito ang pangalan ng iyong manlalaro sa buong mundo\nat nagbibigay-daan sa iyong magtalaga ng ibang tatak dito.",
|
||||
"upgradeToGlobalProfileText": "Taasin sa Global na Profile"
|
||||
},
|
||||
|
|
@ -650,6 +664,8 @@
|
|||
"errorText": "Error",
|
||||
"errorUnknownText": "error na ‘di malaman",
|
||||
"exitGameText": "Exit mula sa ${APP_NAME}?",
|
||||
"expiredAgoText": "Tinapos na noong ${T}",
|
||||
"expiresInText": "Magtatapos sa ${T}",
|
||||
"exportSuccessText": "Na-export ang '${NAME}'.",
|
||||
"externalStorageText": "External na Storage",
|
||||
"failText": "Bigo",
|
||||
|
|
@ -687,11 +703,11 @@
|
|||
"pointsToWinText": "Puntos Upang Maitupad",
|
||||
"seriesLengthText": "Haba ng Serye",
|
||||
"showTutorialText": "Ipakita Ang Tutorial",
|
||||
"shuffleGameOrderText": "I-shuffle Ang Kaayusan Ng Laro",
|
||||
"titleText": "Ayusin Ang ${TYPE} Playlists"
|
||||
"shuffleGameOrderText": "Paghalu-haluin Ang Kaayusan Ng Laro",
|
||||
"titleText": "Ayusin Ang Playlist ng ${TYPE}"
|
||||
},
|
||||
"gameSettingsWindow": {
|
||||
"addGameText": "Maglagay ng Laro"
|
||||
"addGameText": "Magdagdag ng Laro"
|
||||
},
|
||||
"gamesToText": "${WINCOUNT} na laro kontra sa ${LOSECOUNT}",
|
||||
"gatherWindow": {
|
||||
|
|
@ -711,6 +727,7 @@
|
|||
"copyCodeConfirmText": "Nakopya na ang kowd sa clipboard.",
|
||||
"copyCodeText": "Kopyahin ang kowd",
|
||||
"dedicatedServerInfoText": "Para sa pinakamahusay na mga resulta, mag-set up ng nakalaang server. Tingnan ang bombsquadgame.com/server para malaman kung paano.",
|
||||
"descriptionShortText": "Ipamahala ang panig \"Sumama\" upang magtipun-tipon ng isang partido.",
|
||||
"disconnectClientsText": "Ididiskonekta nito ang ${COUNT} (mga) manlalaro\nsa iyong partido. Sigurado ka ba?",
|
||||
"earnTicketsForRecommendingAmountText": "Makakatanggap ang mga kaibigan ng ${COUNT} na tiket kung susubukan nila ang laro\n(at makakatanggap ka ng ${YOU_COUNT} para sa bawat gagawa)",
|
||||
"earnTicketsForRecommendingText": "Ibahagi ang laro\npara makatanggap ng mga libreng tiket…",
|
||||
|
|
@ -822,6 +839,12 @@
|
|||
"youHaveShortText": "mayroon kang ${COUNT}",
|
||||
"youHaveText": "mayroon kang ${COUNT} na tiket"
|
||||
},
|
||||
"goldPass": {
|
||||
"desc1InfTokensText": "Walang hanggang Sagisag",
|
||||
"desc2NoAdsText": "Walang mga ad.",
|
||||
"desc3ForeverText": "Magpakailanman.",
|
||||
"goldPassText": "Gintong Pahintulot"
|
||||
},
|
||||
"googleMultiplayerDiscontinuedText": "Pasensya na, hindi na available ang multiplayer na serbisyo ng Google.\nGumagawa ako ng kapalit sa lalong madaling panahon.\nHanggang doon, mangyaring sumubok ng ibang paraan ng koneksyon.\n-Eric",
|
||||
"googlePlayPurchasesNotAvailableText": "Hindi puwede ang mga pagbili sa Google Play nito.\nMaaaring kailanganin mong ibaguhin ang iyong store app.",
|
||||
"googlePlayServicesNotAvailableText": "Hindi pwede ang Google Play Services sa ngayon.\n‘Di magagana ang takbo ng ilang mga app.",
|
||||
|
|
@ -849,7 +872,7 @@
|
|||
"helpWindow": {
|
||||
"bombInfoText": "- Bomba -\nMas malakas pa sa suntok, ngunit\nmaaaring magresulta sa matinding pananakit sa sarili.\nPara sa pinakamahusay na mga resulta, ihagis mo patungo sa\nkalaban bago ito'y sumabog.",
|
||||
"bombInfoTextScale": 0.5,
|
||||
"canHelpText": "Makakatulong ang ${APP_NAME}.",
|
||||
"canHelpText": "Makakatulong ang ${APP_NAME} para sa iyo.",
|
||||
"controllersInfoText": "Maaari mong laruin ang ${APP_NAME} kasama ng mga kaibigan sa isang network, o ikaw\nlahat ay maaaring maglaro sa parehong device kung mayroon kang sapat na mga controller.\nSinusuportahan ng ${APP_NAME} ang iba't ibang mga ito; maaari ka ring gumamit ng mga telepono\nbilang mga controller sa pamamagitan ng libreng '${REMOTE_APP_NAME}' app.\nTingnan ang Mga Setting->Controller para sa higit pang impormasyon.",
|
||||
"controllersInfoTextRemoteOnly": "Maaari mong laruin ang ${APP_NAME} kasama ng mga kaibigan sa isang network, o ikaw\nlahat ay maaaring maglaro sa parehong device sa pamamagitan ng paggamit ng mga phones bilang\nmga controller sa pamamagitan ng libreng '${REMOTE_APP_NAME}' app.",
|
||||
"controllersText": "Mga Controllers",
|
||||
|
|
@ -861,24 +884,24 @@
|
|||
"friendsText": "Mga Kaibigan",
|
||||
"jumpInfoText": "-Tumalon-\nTumalon upang tumawid sa maliliit na puwang,\nupang ihagis ang mga bagay na mas mataas, at\nupang ipahayag ang damdamin ng kagalakan.",
|
||||
"jumpInfoTextScale": 0.5,
|
||||
"orPunchingSomethingText": "O sumuntok ng isang bagay, itinapon ito sa isang bangin, at pinasabog ito habang pababa gamit ang isang malagkit na bomba.",
|
||||
"orPunchingSomethingText": "O sumuntok ng isang bagay, maghagis sa isang bangin, at pinasabog habang pababa gamit ang isang malagkit na bomba.",
|
||||
"pickUpInfoText": "- Pulutin -\nKunin ang mga flag, mga kaaway, o anumang bagay\nkung hindi ay hindi naka-bold sa lupa.\nPindutin muli upang ihagis.",
|
||||
"pickUpInfoTextScale": 0.5,
|
||||
"powerupBombDescriptionText": "Payagan kang maglabas ng tatlong bomba\nsa isang hilera sa halip na isa lamang.",
|
||||
"powerupBombNameText": "Tatlong-Bomba",
|
||||
"powerupCurseDescriptionText": "Malamang na gusto mong iwasan ang mga ganito.\n ...o sige lang?",
|
||||
"powerupCurseNameText": "Sumpa",
|
||||
"powerupHealthDescriptionText": "Ibangon ka sa buong kalusugan.\nHindi mo naisip nito.",
|
||||
"powerupHealthNameText": "Medikal-Pakete",
|
||||
"powerupIceBombsDescriptionText": "Mas mahina kaysa sa mga normal na bomba\nngunit nagyelo ang iyong mga kalaban\nat partikular na mabasag.",
|
||||
"powerupHealthDescriptionText": "Ibangon ka sa mapunong kalusugan.\nNaasahan mo naman.",
|
||||
"powerupHealthNameText": "Pakete-Medikal",
|
||||
"powerupIceBombsDescriptionText": "Mas mahina kaysa sa mga bombang karaniwan\nngunit nagyelo ang iyong mga kalaban\nat partikular na mabasag sila.",
|
||||
"powerupIceBombsNameText": "Bombang-Yelo",
|
||||
"powerupImpactBombsDescriptionText": "Medyo mahina kaysa sa regular\nbomba, ngunit sumasabog ito kapag nabagsak.",
|
||||
"powerupImpactBombsNameText": "Bombang-Gatilyo",
|
||||
"powerupLandMinesDescriptionText": "Ang mga ito ay dumating sa mga pakete ng 3;\nKapaki-pakinabang para sa base defense o\npaghinto ng mga mabibilis na kalaban.",
|
||||
"powerupLandMinesDescriptionText": "Ito ay naglalaman sa dami ng 3;\nKapaki-pakinabang para sa pagdepensa o\npaghinto ng mga mabibilis na kalaban.",
|
||||
"powerupLandMinesNameText": "Mina",
|
||||
"powerupPunchDescriptionText": "Ang iyong mga suntok ay mas mahirap,\nmas mabilis, mas mahusay, at mas malakas.",
|
||||
"powerupPunchNameText": "Guwantes",
|
||||
"powerupShieldDescriptionText": "Pumigil na pagsakit\nkaya hindi mo kailangan.",
|
||||
"powerupShieldDescriptionText": "Pumigil na pagsakit\nPara mas guminhawa.",
|
||||
"powerupShieldNameText": "Enrhiyang-Kalasag",
|
||||
"powerupStickyBombsDescriptionText": "Dumikit sa anumang matamaan nila.\nIto’y naging pagtawanan.",
|
||||
"powerupStickyBombsNameText": "Bombang-Malagkit",
|
||||
|
|
@ -900,6 +923,7 @@
|
|||
"importText": "I-Import",
|
||||
"importingText": "Nag-Iimport…",
|
||||
"inGameClippedNameText": "Sa in-game ay naging\n\"${NAME}\"",
|
||||
"inboxText": "Inbaks",
|
||||
"installDiskSpaceErrorText": "ERROR: Hindi makumpleto ang pag-install.\nMaaaring wala ka nang espasyo sa iyong device.\nMag-clear ng ilang espasyo at subukang muli.",
|
||||
"internal": {
|
||||
"arrowsToExitListText": "pindutin ang ${LEFT} o ${RIGHT} upang mawala sa listahan",
|
||||
|
|
@ -910,7 +934,7 @@
|
|||
"connectedToPartyText": "Sumali sa party ni ${NAME}!",
|
||||
"connectingToPartyText": "Nagdudugtong….",
|
||||
"connectionFailedHostAlreadyInPartyText": "Nabigo ang koneksyon; nasa ibang party ang host.",
|
||||
"connectionFailedPartyFullText": "Nabigo ang koneksyon; puno na ang party.",
|
||||
"connectionFailedPartyFullText": "Nabigo ang koneksyon; puno na po.",
|
||||
"connectionFailedText": "Nabigo ang koneksyon.",
|
||||
"connectionFailedVersionMismatchText": "Nabigo ang koneksyon; nagpapatakbo ang host ng ibang bersyon ng laro.\nTiyaking pareho kayong napapanahon at subukang muli sumali.",
|
||||
"connectionRejectedText": "Tinanggihan ang koneksyon.",
|
||||
|
|
@ -937,29 +961,31 @@
|
|||
"invitationsSentText": "${COUNT} (na) imbitasyon ang napadala.",
|
||||
"joinedPartyInstructionsText": "May sumali sa iyong partido.\nPumunta sa 'Maglaro' para magsimula ng laro.",
|
||||
"keyboardText": "Keyboard",
|
||||
"kickIdlePlayersKickedText": "na-kicked si ${NAME} dahil sa pagiging idle.",
|
||||
"kickIdlePlayersWarning1Text": "I-kikick si ${NAME} sa loob ng ${COUNT} (na) segundo kung idle pa rin.",
|
||||
"kickIdlePlayersWarning2Text": "(maaari mong i-off ito sa Mga Setting -> Advanced)",
|
||||
"kickIdlePlayersKickedText": "nalayas si ${NAME} dahil hindi gumagalaw.",
|
||||
"kickIdlePlayersWarning1Text": "Lalayas si ${NAME} sa loob ng ${COUNT} (na) segundo kung hindi pa rin gumagalaw.",
|
||||
"kickIdlePlayersWarning2Text": "(maaari mong isara ito sa \"Mga Setting\" -> \"Mga Iba Pa\")",
|
||||
"leftGameText": "Umalis ka sa '${NAME}'.",
|
||||
"leftPartyText": "Umalis ka sa party ni ${NAME}.",
|
||||
"noMusicFilesInFolderText": "Walang mga file ng musika ang folder.",
|
||||
"playerJoinedPartyText": "Sumali si ${NAME} sa party mo!",
|
||||
"playerLeftPartyText": "Umalis si ${NAME} sa party mo.",
|
||||
"rejectingInviteAlreadyInPartyText": "Pagtanggi sa imbitasyon (nasa isang party na).",
|
||||
"serverRestartingText": "Nagre-restart ang server. Mangyaring sumali muli sa isang saglit…",
|
||||
"rejectingInviteAlreadyInPartyText": "Natanggi ang imbitasyon (nasa isang party ka na).",
|
||||
"serverRestartingText": "Umuulit ang server. Mangyaring sumali muli sa isang saglit…",
|
||||
"serverShuttingDownText": "Nagsasara ang server...",
|
||||
"signInErrorText": "Error sa pag-sign in.",
|
||||
"signInErrorText": "May problema sa pagpasok sa account.",
|
||||
"signInNoConnectionText": "Hindi makapag-sign in. (walang koneksyon ang Wi-Fi mo?)",
|
||||
"telnetAccessDeniedText": "ERROR: ang user ay hindi nagbigay ng access sa telnet.",
|
||||
"timeOutText": "(time out sa ${TIME} segundo)",
|
||||
"touchScreenJoinWarningText": "Sumali ka gamit ang touchscreen.\nKung ito ay isang pagkakamali, i-tap ang 'Menu->Umalis sa Laro' kasama nito.",
|
||||
"touchScreenText": "TouchScreen",
|
||||
"unableToCompleteTryAgainText": "Hindi maaaring maitapos ito sa ngayon.\nMaaaring mo ulitin.",
|
||||
"unableToResolveHostText": "Error: hindi malutas ang host.",
|
||||
"unavailableNoConnectionText": "Ito’y kasalukuyang hindi magagamit (walang koneksyon sa internet?)",
|
||||
"vrOrientationResetCardboardText": "Gamitin ito upang i-reset ang oryentasyon ng VR.\nUpang maglaro ng laro kakailanganin mo ng isang panlabas na controller.",
|
||||
"vrOrientationResetText": "Pag-reset ng oryentasyon ng VR.",
|
||||
"willTimeOutText": "(magta-time out kung idle)"
|
||||
},
|
||||
"inventoryText": "Imbentaryo",
|
||||
"jumpBoldText": "TALON",
|
||||
"jumpText": "Talon",
|
||||
"keepText": "Panatilihin",
|
||||
|
|
@ -967,17 +993,17 @@
|
|||
"keyboardChangeInstructionsText": "I-double press space para mapalitan ang mga keyboard.",
|
||||
"keyboardNoOthersAvailableText": "Walang ibang mga keyboard na magagamit.",
|
||||
"keyboardSwitchText": "Nagpapalit ng keyboard sa \"${NAME}\".",
|
||||
"kickOccurredText": "na-kicked si ${NAME}",
|
||||
"kickQuestionText": "I-Kick si ${NAME}?",
|
||||
"kickText": "I-Kick",
|
||||
"kickVoteCantKickAdminsText": "Hindi ma-kick ang mga admin.",
|
||||
"kickVoteCantKickSelfText": "Hindi mo ma-kick ng sarili mo.",
|
||||
"kickVoteFailedNotEnoughVotersText": "Hindi marami ang mga manlalaro para sa isang boto.",
|
||||
"kickVoteFailedText": "Nabigo ang kick-vote.",
|
||||
"kickVoteStartedText": "Sinimulan na ang isang kick vote para kay ${NAME}.",
|
||||
"kickVoteText": "Bumoto sa Pagki-kick",
|
||||
"kickOccurredText": "Napalayas si ${NAME} dito.",
|
||||
"kickQuestionText": "Palayasin si ${NAME}?",
|
||||
"kickText": "Palayasin",
|
||||
"kickVoteCantKickAdminsText": "Hindi pwedeng palayasin ang Mga Ninuno dito.",
|
||||
"kickVoteCantKickSelfText": "Hindi mo mailayas ang iyong sarili.",
|
||||
"kickVoteFailedNotEnoughVotersText": "Konti ang mga naglalaro upang magbutuhan.",
|
||||
"kickVoteFailedText": "Hindi maipalayas mula sa pagbutuhan.",
|
||||
"kickVoteStartedText": "Sinimulan ang butuhan upang palayasin dito si ${NAME}.",
|
||||
"kickVoteText": "Bumoto para Ipalayas",
|
||||
"kickVotingDisabledText": "Naka-disable ang kick voting.",
|
||||
"kickWithChatText": "I-type ang ${YES} sa chat para sa oo at ${NO} para sa hindi.",
|
||||
"kickWithChatText": "Pindutin ang ${YES} sa iyong puwang salitahan kung oo at ${NO} kung hindi.",
|
||||
"killsTallyText": "${COUNT} pinatay",
|
||||
"killsText": "Pinatay",
|
||||
"kioskWindow": {
|
||||
|
|
@ -991,7 +1017,7 @@
|
|||
},
|
||||
"languageSetText": "Ang wika ay \"${LANGUAGE}\" sa ngayon.",
|
||||
"lapNumberText": "Ikot ${CURRENT}/${TOTAL}",
|
||||
"lastGamesText": "(huling ${COUNT} na laro)",
|
||||
"lastGamesText": "(sa huling ${COUNT} na laro)",
|
||||
"leaderboardsText": "Ranggo Ng Mga Pasimuno",
|
||||
"league": {
|
||||
"allTimeText": "Lahat Ng Oras",
|
||||
|
|
@ -1002,12 +1028,15 @@
|
|||
"rankInLeagueText": "#${RANK}, ${NAME} ${SUFFIX} na Liga",
|
||||
"seasonEndedDaysAgoText": "Tumapos na ang season noong ${NUMBER} na araw.",
|
||||
"seasonEndsDaysText": "Matatapos ang season sa ${NUMBER} (na) araw.",
|
||||
"seasonEndsHoursText": "Matatapos ang season sa ${NUMBER} (na) oras.",
|
||||
"seasonEndsHoursText": "Matatapos ang season na ito sa ${NUMBER} (na) oras.",
|
||||
"seasonEndsMinutesText": "Matatapos ang season sa ${NUMBER} (na) minuto.",
|
||||
"seasonText": "Ika-${NUMBER} na season",
|
||||
"tournamentLeagueText": "Dapat mong maabot ang liga ng ${NAME} upang makapasok sa paligsahan na ito.",
|
||||
"trophyCountsResetText": "Ire-reset ang mga bilang ng tropeo sa susunod na season."
|
||||
"trophyCountsResetText": "Ire-reset ang mga bilang ng tropeo sa susunod na season.",
|
||||
"upToDateBonusDescriptionText": "Ang mga naglalaro ng mas bagong bersyon ng laro \nna ito ay tatanggap ng ${PERCENT}% na abono rito.",
|
||||
"upToDateBonusText": "Abono sa Makabago"
|
||||
},
|
||||
"learnMoreText": "Alamin",
|
||||
"levelBestScoresText": "Pinakamahusay na mga iskor sa ${LEVEL}",
|
||||
"levelBestTimesText": "Pinakamahusay na lahat sa ${LEVEL}",
|
||||
"levelIsLockedText": "Naka-lock ang ${LEVEL}.",
|
||||
|
|
@ -1024,7 +1053,7 @@
|
|||
"macControllerSubsystemMFiText": "Made-for-iOS/Mac",
|
||||
"macControllerSubsystemTitleText": "Suporta sa Controller",
|
||||
"mainMenu": {
|
||||
"creditsText": "Mga Kredito",
|
||||
"creditsText": "Karangalan",
|
||||
"demoMenuText": "Demo na Menu",
|
||||
"endGameText": "Itigil ang Laro",
|
||||
"endTestText": "Itigil ang Test",
|
||||
|
|
@ -1051,6 +1080,8 @@
|
|||
"modeArcadeText": "Arcade na Mode",
|
||||
"modeClassicText": "Klasikong Mode",
|
||||
"modeDemoText": "Mode na Demo",
|
||||
"moreSoonText": "Marami pang darating...",
|
||||
"mostDestroyedPlayerText": "Pinakanapinsalang Manlalaro",
|
||||
"mostValuablePlayerText": "Pinakamalupit sa lahat",
|
||||
"mostViolatedPlayerText": "Pinakanakawawa sa lahat",
|
||||
"mostViolentPlayerText": "Pinakamadugo sa lahat",
|
||||
|
|
@ -1067,6 +1098,7 @@
|
|||
"nameSuicideText": "Nagpakamatay si ${NAME}.",
|
||||
"nameText": "Pangalan",
|
||||
"nativeText": "Natural",
|
||||
"newExclaimText": "Bagong-bago!",
|
||||
"newPersonalBestText": "Bagong personal na pinakamahusay!",
|
||||
"newTestBuildAvailableText": "Available ang isang mas bagong pagsubok na build! (${VERSION} build ${BUILD}).\nKunin ito sa ${ADDRESS}",
|
||||
"newText": "Gumawa ng Bago",
|
||||
|
|
@ -1074,9 +1106,10 @@
|
|||
"nextAchievementsText": "Mga Susunod na Nakamit:",
|
||||
"nextLevelText": "Susunod na Antas",
|
||||
"noAchievementsRemainingText": "- wala",
|
||||
"noContinuesText": "(hindi i-continue)",
|
||||
"noContinuesText": "(walang tuluyan)",
|
||||
"noExternalStorageErrorText": "Walang nakitang external na storage sa device na ito",
|
||||
"noGameCircleText": "Error: hindi naka-log in sa GameCircle",
|
||||
"noMessagesText": "Walang mga message.",
|
||||
"noPluginsInstalledText": "Hindi Nakabit ang mga Plugin",
|
||||
"noScoresYetText": "Wala pang score.",
|
||||
"noServersFoundText": "Walang nahanap na servers.",
|
||||
|
|
@ -1085,6 +1118,7 @@
|
|||
"noValidMapsErrorText": "Walang nakitang valid na mapa para sa ganitong uri ng laro.",
|
||||
"notEnoughPlayersRemainingText": "Hindi marami na manlalaro ang natitira; umalis at magsimula ng bagong laro.",
|
||||
"notEnoughPlayersText": "Kailangan mo ng atleast ${COUNT} na manlalaro upang simulan ang larong ito!",
|
||||
"notEnoughTicketsText": "Kulang ang iyong bilang ng tiket!",
|
||||
"notNowText": "Hindi muna ngayon",
|
||||
"notSignedInErrorText": "Dapat kang mag-sign in para magawa ito.",
|
||||
"notSignedInGooglePlayErrorText": "Dapat kang mag-sign in gamit ang Google Play para magawa ito.",
|
||||
|
|
@ -1097,10 +1131,13 @@
|
|||
"onText": "Nakabuksan",
|
||||
"oneMomentText": "Saglit lang…",
|
||||
"onslaughtRespawnText": "Ang ${PLAYER} ay respawn sa ika-${WAVE} na yugto",
|
||||
"openMeText": "Buksan Mo 'Ko!",
|
||||
"openNowText": "Ibuksan Ngayon",
|
||||
"openText": "Ibuksan",
|
||||
"orText": "${A} o ${B}",
|
||||
"otherText": "Iba Pa…",
|
||||
"outOfText": "(#${RANK} sa ${ALL})",
|
||||
"ownFlagAtYourBaseWarning": "Ang iyong sariling watawat ay dapat na\nsa iyong base upang makapuntos!",
|
||||
"ownFlagAtYourBaseWarning": "Ang iyong sariling watawat ay dapat na\nsa lagayan nito upang makapuntos!",
|
||||
"packageModsEnabledErrorText": "Ang network-play ay hindi pinapayagan habang ang local-package-mods ay pinagana (tingnan ang Mga Setting->Advanced)",
|
||||
"partyWindow": {
|
||||
"chatMessageText": "Mensahe",
|
||||
|
|
@ -1144,7 +1181,7 @@
|
|||
"playlistNotFoundText": "hindi nahanap ang playlist",
|
||||
"playlistText": "Playlist",
|
||||
"playlistsText": "Mga Playlist",
|
||||
"pleaseRateText": "Kung nae-enjoy mo ang ${APP_NAME}, mangyaring isaalang-alang ang \npagkuha na sandali lang at i-rate ito o pagsulat ng isang pagsusuri. Nagbibigay ito ngkapaki-pakinabang na feedback at \ntumutulong sa pagsuporta sa pag-unlad sa hinaharap.\n\nsalamat!\n-eric",
|
||||
"pleaseRateText": "Kung nasasaya ka sa larong ${APP_NAME} na ito, mangyaring isaalang-alang\numisip sa isang sandali at i-grado ito o sumulat ng isang pagsusuri. Nagbibigay ito ng kapaki-pakinabang na puna at\ntumutulong ito sa pagsuporta sa aming pag-uunlad sa hinaharap.\n\nsalamat po!\n-eric",
|
||||
"pleaseWaitText": "Hintay lang…",
|
||||
"pluginClassLoadErrorText": "Error sa paglo-load ang '${PLUGIN}' na klaseng plugin : ${ERROR}",
|
||||
"pluginInitErrorText": "Error sa pagsisimula ang '${PLUGIN}' na plugin: ${ERROR}",
|
||||
|
|
@ -1162,9 +1199,9 @@
|
|||
"pressAnyKeyButtonPlayAgainText": "Pindutin ang anumang key/button para maglaro muli...",
|
||||
"pressAnyKeyButtonText": "Pindutin ang anumang key/button para magpatuloy...",
|
||||
"pressAnyKeyText": "Pindutin ang anumang key…",
|
||||
"pressJumpToFlyText": "** Pindutin ang tumalon nang paulit-ulit upang lumipad **",
|
||||
"pressJumpToFlyText": "** Pindutin ang pindutang \"tumalon\" nang paulit-ulit upang lumipad **",
|
||||
"pressPunchToJoinText": "Pindutin ang SUNTOK para sumali...",
|
||||
"pressToOverrideCharacterText": "pindutin ang ${BUTTONS} upang i-override ang iyong karakter",
|
||||
"pressToOverrideCharacterText": "pindutin ang ${BUTTONS} upang mapalitan ang iyong itsura ng karakter",
|
||||
"pressToSelectProfileText": "pindutin ang ${BUTTONS} upang pumili ng manlalaro",
|
||||
"pressToSelectTeamText": "pindutin ang ${BUTTONS} para pumili ng team",
|
||||
"promoCodeWindow": {
|
||||
|
|
@ -1182,6 +1219,8 @@
|
|||
"punchText": "Suntok",
|
||||
"purchaseForText": "Ipagbili ng ${PRICE}",
|
||||
"purchaseGameText": "Ibili ang laro",
|
||||
"purchaseNeverAvailableText": "Pasensya na, ang pagbibili rito ay ipinagbawal sa pangangatawan na ito.\nSubukang pumasok sa iyong account sa ibang plataporma at bumili doon",
|
||||
"purchaseNotAvailableText": "Hindi mo maaaring bumili ito.",
|
||||
"purchasingText": "Nagbabayad...",
|
||||
"quitGameText": "Ihinto ang ${APP_NAME}?",
|
||||
"quittingIn5SecondsText": "Humihinto sa loob ng 5 segundo...",
|
||||
|
|
@ -1209,7 +1248,7 @@
|
|||
"dpad_size": "Laki ng D-Pad",
|
||||
"dpad_type": "Uri ng D-Pad",
|
||||
"enter_an_address": "Maglagay ng Address",
|
||||
"game_full": "Ang laro ay puno na o hindi tumatanggap ng mga koneksyon.",
|
||||
"game_full": "Ang laro ay alinman puno na o hindi tumatanggap ng mga koneksyon.",
|
||||
"game_shut_down": "Nagsara ang laro.",
|
||||
"hardware_buttons": "Mga Pindutan ng Hardware",
|
||||
"join_by_address": "Sumali sa pamamagitan ng Address...",
|
||||
|
|
@ -1223,6 +1262,7 @@
|
|||
"version_mismatch": "Hindi tugma ang bersyon.\nTiyaking BombSquad at BombSquad Remote\nay ang mga pinakabagong bersyon at subukang muli."
|
||||
},
|
||||
"removeInGameAdsText": "I-unlock ang \"${PRO}\" sa tindahan upang alisin ang mga in-game na ad.",
|
||||
"removeInGameAdsTokenPurchaseText": "TAKDANG PAGHAHANDOG:Bumili ng KAHIT ANONG paketeng sagisag para mawala ang mga in-game ads.",
|
||||
"renameText": "I-palitan",
|
||||
"replayEndText": "Itigil Ang Replay",
|
||||
"replayNameDefaultText": "Replay ng Huling Laro",
|
||||
|
|
@ -1277,12 +1317,14 @@
|
|||
"devToolsText": "Kagamitan sa Paggawa",
|
||||
"disableCameraGyroscopeMotionText": "Itigil ang mosyong dyayroskop ng larawan",
|
||||
"disableCameraShakeText": "Huwag paganahin ang alog ng larawan",
|
||||
"disableThisNotice": "(maaari mong ipatigil ang paunwa na ito sa setting \"Mga Iba Pa\")",
|
||||
"disableThisNotice": "(maaari mong ipatigil ang paunawa na ito sa setting \"Mga Iba Pa\")",
|
||||
"enablePackageModsDescriptionText": "(nagpapagana ng mga karagdagang kakayahan sa pag-modding ngunit hindi pinapagana ang net-play)",
|
||||
"enablePackageModsText": "Paganahin ang Lokal na Package Mods",
|
||||
"enterPromoCodeText": "Ilagay ang Kowd",
|
||||
"forTestingText": "Tandaan: ang mga value na ito ay para lamang sa pagsusuri at mawawala ito kapag umalis ka sa larong ito.",
|
||||
"helpTranslateText": "Ang mga pagsasalin na hindi Ingles ng ${APP_NAME} ay isang komunidad\nsuportadong pagsisikap. Kung gusto mong mag-ambag o magtama\nisang pagsasalin, sundan ang link sa ibaba. Salamat!",
|
||||
"helpTranslateText": "Ang mga pagsasalin na bukod sa Ingles ng ${APP_NAME} ay isang pagsisikap na \nsuporta ng komunidad dito sa larong ito. Kung gusto mong mag-ambag o magtama \nng isa o higit pang pagsasalin, sundan ang link sa ibaba. Salamat po muli!",
|
||||
"insecureConnectionsDescriptionText": "Hindi ito irerekomenda, ngunit pwede maglaro nang online \nmula sa ibang bansa o network na limitado.",
|
||||
"insecureConnectionsText": "Gumamit ng koneksyong walang seguridad",
|
||||
"kickIdlePlayersText": "Ipalayas ang mga manlalarong hindi gumagalaw",
|
||||
"kidFriendlyModeText": "Pamamaraang Pambata (walang tinding karahasan, atbp)",
|
||||
"languageText": "Wika",
|
||||
|
|
@ -1321,16 +1363,16 @@
|
|||
"soloNameFilterText": "Pinag-iisang ${NAME}",
|
||||
"soundtrackTypeNames": {
|
||||
"CharSelect": "Pagpili ng Karakter",
|
||||
"Chosen One": "Piniling Isa",
|
||||
"Chosen One": "Ang Piniling Isa",
|
||||
"Epic": "Larong Madakila",
|
||||
"Epic Race": "Dakilang Takbuhan",
|
||||
"FlagCatcher": "Agawang Bandila",
|
||||
"Flying": "Masayang Isip",
|
||||
"Flying": "Isipang Masaya",
|
||||
"Football": "Rugbi",
|
||||
"ForwardMarch": "Pag-atake",
|
||||
"ForwardMarch": "Dadaluhungin",
|
||||
"GrandRomp": "Pagsakop",
|
||||
"Hockey": "Haki",
|
||||
"Keep Away": "Layuan Mo",
|
||||
"Keep Away": "Hawakang Bandila",
|
||||
"Marching": "Bantayan",
|
||||
"Menu": "Pangunahing Menu",
|
||||
"Onslaught": "Pagsalakay",
|
||||
|
|
@ -1343,6 +1385,7 @@
|
|||
},
|
||||
"spaceKeyText": "space",
|
||||
"statsText": "Katayuan",
|
||||
"stopRemindingMeText": "Itigil ang paalala",
|
||||
"storagePermissionAccessText": "Nangangailangan ito ng pagpasok sa storage",
|
||||
"store": {
|
||||
"alreadyOwnText": "Nabili mo na ang ${NAME}!",
|
||||
|
|
@ -1364,10 +1407,10 @@
|
|||
"miniGamesText": "Mga Lalaruhin",
|
||||
"oneTimeOnlyText": "(isang beses lang)",
|
||||
"purchaseAlreadyInProgressText": "Ang isang nabilhin ng item na ito ay isinasagawa na.",
|
||||
"purchaseConfirmText": "Bilhin ang ${ITEM}?",
|
||||
"purchaseConfirmText": "Bilhin ang ${ITEM} na ito?",
|
||||
"purchaseNotValidError": "Hindi wasto ang nabilhin.\nMakipag-ugnayan kay ${EMAIL} kung ito ay isang error.",
|
||||
"purchaseText": "Bilhin",
|
||||
"saleBundleText": "Diskwento ng Bundle!",
|
||||
"saleBundleText": "Diskwento ng Balutan!",
|
||||
"saleExclaimText": "Diskwento!",
|
||||
"salePercentText": "(${PERCENT}% diskwento)",
|
||||
"saleText": "BAWAS",
|
||||
|
|
@ -1385,25 +1428,26 @@
|
|||
"customize2Text": "I-customize ang mga character, mini-game, at maging ang mga soundtrack.",
|
||||
"customizeText": "I-customize ang mga character at gumawa ng sarili mong mga mini-game playlist.",
|
||||
"sportsMoreFunText": "Mas masaya ang sports na may pampasabog.",
|
||||
"teamUpAgainstComputerText": "Makipagtulungan laban sa computer."
|
||||
"teamUpAgainstComputerText": "Makipagtulungan laban sa kumukusa."
|
||||
},
|
||||
"storeText": "Tindahan",
|
||||
"submitText": "Ipasa",
|
||||
"submittingPromoCodeText": "Pinapasa ang Kowd...",
|
||||
"successText": "Wakas!",
|
||||
"successText": "Matagumpay!",
|
||||
"supportEmailText": "Pag may problema sa app, \npaki-email ang ${EMAIL}.",
|
||||
"teamNamesColorText": "Mga Pangalan/Kulay ng Team…",
|
||||
"teamNamesColorText": "Mga Pangalan/Kulay ng Kampihan…",
|
||||
"telnetAccessGrantedText": "Pinagana ang pag-access sa Telnet..",
|
||||
"telnetAccessText": "Natuklasan ang pag-access sa Telnet; payagan?",
|
||||
"testBuildErrorText": "Ang test build na ito ay hindi na aktibo; mangyaring suriin para sa isang bagong bersyon.",
|
||||
"testBuildText": "Test Build",
|
||||
"testBuildValidateErrorText": "Hindi ma-validate ang test build. (walang koneksyon sa internet?)",
|
||||
"testBuildValidatedText": "Na-validate ang Test Build; Tamasahin!",
|
||||
"thankYouText": "Salamat sa iyong suporta! Tangkilikin ang laro!!",
|
||||
"testBuildValidateErrorText": "Hindi nawasto ang test build. (walang koneksyon sa internet?)",
|
||||
"testBuildValidatedText": "Napawasto ang Test Build; Tamasahin!",
|
||||
"thankYouText": "Salamat po sa iyong pagsuporta! Tangkilikin ang laro na ito!!",
|
||||
"threeKillText": "TRIPLENG PAGPATAY!!",
|
||||
"timeBonusText": "Bonus sa Oras",
|
||||
"ticketsDescriptionText": "Ang tiket ay magagamit upang magamit ang mga karakter, \nmapa, lalaruhin, at iba pa sa tindahan.\n\nAng tiket ay maaaring mahanap sa mga baul mula sa pagtagumpay \nsa kampanya, paligsahan, at mga makamtan.",
|
||||
"timeBonusText": "Sigla sa Oras",
|
||||
"timeElapsedText": "Oras Na Lumipas",
|
||||
"timeExpiredText": "Tapos Na!",
|
||||
"timeExpiredText": "Lagpas Na!",
|
||||
"timeSuffixDaysText": "${COUNT}d",
|
||||
"timeSuffixHoursText": "${COUNT}h",
|
||||
"timeSuffixMinutesText": "${COUNT}m",
|
||||
|
|
@ -1411,14 +1455,28 @@
|
|||
"tipText": "Isang Payo",
|
||||
"titleText": "BombSquad",
|
||||
"titleVRText": "BombSquad VR",
|
||||
"tokens": {
|
||||
"getTokensText": "Bumili Ng Mga Sagisag",
|
||||
"notEnoughTokensText": "Hindi sapat ang iyong mga sagisag para rito!",
|
||||
"numTokensText": "${COUNT} Mga Sagisag",
|
||||
"openNowDescriptionText": "May sapat kang token para \nmabuksan mo na ito ngayon – \nhindi mo na kailangang maghintay.",
|
||||
"shinyNewCurrencyText": "Isang makintab na bagong pera ng BombSquad.",
|
||||
"tokenPack1Text": "Maliit-Paketeng Sagisag",
|
||||
"tokenPack2Text": "Katamtamang Paketeng Sagisag",
|
||||
"tokenPack3Text": "Malaking Paketeng Sagisag",
|
||||
"tokenPack4Text": "Pinakamalaking Paketeng Sagisag",
|
||||
"tokensDescriptionText": "Ang Sagisag ay ginagamit upang bumilis ang pagbuksan ng \nmga baul at para sa ibang katangiang ng account at larong ito.\n\nMaaari kang manalo ng mga sagisag \nsa mga laruhin o bumili ang mga pakete nito. \nO kaya bumili ng \"Gintong Pahintulot\" upang mawalang-hanggan",
|
||||
"youHaveGoldPassText": "Mayroon ka nang Gintong Pahintulot.\nLahat ng mga pagbili ng mga Sagisag ay libre na.\nIkasaya mo na!"
|
||||
},
|
||||
"topFriendsText": "Pinakamataas sa mga Kaibigan",
|
||||
"tournamentCheckingStateText": "Sinusuri ang estado ng paligsahan; pakihintay...",
|
||||
"tournamentEndedText": "Natapos na ang paligsahan na ito. Magsisimula ng bago mamaya.",
|
||||
"tournamentEntryText": "Pagpasok sa Paligsahan",
|
||||
"tournamentFinalStandingsText": "Pinaka-tapos na Standing",
|
||||
"tournamentResultsRecentText": "Mga Resulta ng Kamakailang Paligsahan",
|
||||
"tournamentStandingsText": "Mga Paninindigan sa Paligsahan",
|
||||
"tournamentStandingsText": "Mga Puwesto sa Paligsahan",
|
||||
"tournamentText": "Paligsahan",
|
||||
"tournamentTimeExpiredText": "Na-expire Na Ang Oras Ng Paligsahan",
|
||||
"tournamentTimeExpiredText": "Natapos Na Ang Oras Ng Paligsahan Na Ito",
|
||||
"tournamentsDisabledWorkspaceText": "Hindi ka pwede maglaro ng mga paligsahan kapag aktibo ang mga workspace. \nIsara muna ang iyong workspace at ulitin ang larong ito upang makipaglaro sa paligsahan.",
|
||||
"tournamentsText": "Mga Paligsahan",
|
||||
"translations": {
|
||||
|
|
@ -1470,24 +1528,36 @@
|
|||
"Uber Onslaught": "Kasukdulang Pagsalakay",
|
||||
"Uber Runaround": "Kasukdulang Bantayan"
|
||||
},
|
||||
"displayItemNames": {
|
||||
"${C} Tickets": "${C} Tickets",
|
||||
"${C} Tokens": "${C} Tokens",
|
||||
"Chest": "Chest",
|
||||
"L1 Chest": "L1 Chest",
|
||||
"L2 Chest": "L2 Chest",
|
||||
"L3 Chest": "L3 Chest",
|
||||
"L4 Chest": "L4 Chest",
|
||||
"L5 Chest": "L5 Chest",
|
||||
"L6 Chest": "L6 Chest",
|
||||
"Unknown Chest": "Hindi kilala na chest"
|
||||
},
|
||||
"gameDescriptions": {
|
||||
"Be the chosen one for a length of time to win.\nKill the chosen one to become it.": "Maging ang napili ng tiyak na oras para manalo.\nPatayin ang napili para maging isa nito.",
|
||||
"Bomb as many targets as you can.": "Bomba ng maraming target hangga't maaari mo.",
|
||||
"Bomb as many targets as you can.": "Bombahin ang maraming patamaan hangga't maaari mo.",
|
||||
"Carry the flag for ${ARG1} seconds.": "Hawakan ang bandila sa loob ng ${ARG1} segundo.",
|
||||
"Carry the flag for a set length of time.": "Hawakan ang bandila para sa isang nakatakdang haba ng oras.",
|
||||
"Crush ${ARG1} of your enemies.": "Patayin ang ${ARG1} ng iyong mga kalaban",
|
||||
"Defeat all enemies.": "Talunin ang lahat ng iyong mga kalaban",
|
||||
"Defeat all enemies.": "Talunin ang lahat ng mga kalaban.",
|
||||
"Dodge the falling bombs.": "Iwasan ang bumabagsak na bomba.",
|
||||
"Final glorious epic slow motion battle to the death.": "Huling maluwalhating epic slow motion na labanan hanggang kamatayan.",
|
||||
"Final glorious epic slow motion battle to the death.": "Ito na ang huling maluwalhating na labanan sa isang dakilang pabagalang galaw hanggang sa kamatayan.",
|
||||
"Gather eggs!": "Ipunin ng mga itlog!",
|
||||
"Get the flag to the enemy end zone.": "Kunin ang bandila patungo sa dulong lugar ng kalaban.",
|
||||
"Get the flag to the enemy end zone.": "Hawakin ang bandila patungo sa dulong lugar ng kalaban.",
|
||||
"How fast can you defeat the ninjas?": "Gaano kabilis mo matatalo ang mga ninja?",
|
||||
"Kill a set number of enemies to win.": "Pumatay ng isang set na bilang ng mga kalaban upang manalo.",
|
||||
"Last one standing wins.": "Kung sino ang huling nakatayo ang siyang mananalo.",
|
||||
"Last one standing wins.": "Kung sino ang huling nabuhay ang siyang mananalo.",
|
||||
"Last remaining alive wins.": "Kung sino ang huling natitirang buhay ang siyang mananalo.",
|
||||
"Last team standing wins.": "Kung sino ang huling katayuan ng koponan ang siyang mananalo",
|
||||
"Prevent enemies from reaching the exit.": "Pigilan ang mga kalaban na makarating at makalabas sa labasan.",
|
||||
"Reach the enemy flag to score.": "Abutin ang bandila ng kalaban upang maka-iskor.",
|
||||
"Reach the enemy flag to score.": "Ihawak ang bandila ng kalaban upang maka-iskor.",
|
||||
"Return the enemy flag to score.": "Ibalik ang watawat ng kalaban upang maka-iskor.",
|
||||
"Run ${ARG1} laps.": "Tumakbo ng ${ARG1} ikot",
|
||||
"Run ${ARG1} laps. Your entire team has to finish.": "Tumakbo ng {ARG1} ikot. Kailangang matapos ang iyong buong team na ito.",
|
||||
|
|
@ -1510,8 +1580,8 @@
|
|||
"Touch the enemy flag.": "Humawak sa bandera ng iyong kalaban.",
|
||||
"carry the flag for ${ARG1} seconds": "Hawakan ang bandila ng ${ARG1} segundo",
|
||||
"kill ${ARG1} enemies": "patayin ang ${ARG1} na mga kalaban.",
|
||||
"last one standing wins": "kung sino ang huling nakatayo ang siyang mananalo",
|
||||
"last team standing wins": "ang huling grupo ay mananalo",
|
||||
"last one standing wins": "kung sino ang huling nabuhay ang siyang mananalo",
|
||||
"last team standing wins": "ang huling grupong buhay ay mananalo",
|
||||
"return ${ARG1} flags": "Magnakaw ng ${ARG1} na mga bandera",
|
||||
"return 1 flag": "ibalik ang 1 bandila",
|
||||
"run ${ARG1} laps": "Tumakbo ng ${ARG1} ikot",
|
||||
|
|
@ -1526,16 +1596,16 @@
|
|||
"touch 1 flag": "humawak ng 1 bandila"
|
||||
},
|
||||
"gameNames": {
|
||||
"Assault": "Pag hawak ng bandila",
|
||||
"Assault": "Dadaluhungin",
|
||||
"Capture the Flag": "Agawang Bandila",
|
||||
"Chosen One": "Piniling Isa",
|
||||
"Chosen One": "Ang Piniling Isa",
|
||||
"Conquest": "Pagsakop",
|
||||
"Death Match": "Laban ng Kamatayan",
|
||||
"Easter Egg Hunt": "Paghahanap ng mga Easter Egg",
|
||||
"Elimination": "Pagbabawasan",
|
||||
"Football": "Putbol",
|
||||
"Hockey": "Hockey",
|
||||
"Keep Away": "Layuan Mo",
|
||||
"Keep Away": "Hawakang Bandila",
|
||||
"King of the Hill": "Hari ng Burol",
|
||||
"Meteor Shower": "Ulan ng mga Bulalakaw",
|
||||
"Ninja Fight": "Labanan ng mga Ninja",
|
||||
|
|
@ -1547,13 +1617,14 @@
|
|||
},
|
||||
"inputDeviceNames": {
|
||||
"Keyboard": "Keyboard",
|
||||
"Keyboard P2": "Keyboard F2"
|
||||
"Keyboard P2": "Keyboard P2"
|
||||
},
|
||||
"languages": {
|
||||
"Arabic": "Wikang Arabik",
|
||||
"Belarussian": "Wikang Belaruso",
|
||||
"Chinese": "Wikang Tsino",
|
||||
"ChineseTraditional": "Wikang Tsinong Tradisyonal",
|
||||
"Chinese": "Wikang Tsino ",
|
||||
"ChineseSimplified": "Wikang Tsino - Pangkaraniwan",
|
||||
"ChineseTraditional": "Wikang Tsino - Tradisyonal",
|
||||
"Croatian": "Wikang Kroatyano",
|
||||
"Czech": "Wikang Tsek",
|
||||
"Danish": "Wikang Denmark",
|
||||
|
|
@ -1564,7 +1635,7 @@
|
|||
"Finnish": "Wikang Finnish",
|
||||
"French": "Wikang Pranses",
|
||||
"German": "Wikang Alemanya",
|
||||
"Gibberish": "Hindi Maintindihan nito",
|
||||
"Gibberish": "Pagyayapyap",
|
||||
"Greek": "Wikang Griyego",
|
||||
"Hindi": "Wikang Indiyano",
|
||||
"Hungarian": "Wikang Hanggaryan",
|
||||
|
|
@ -1574,13 +1645,18 @@
|
|||
"Korean": "Wikang Koreano",
|
||||
"Malay": "Wikang Malay",
|
||||
"Persian": "Wikang Persyano",
|
||||
"PirateSpeak": "Salitang Pirata",
|
||||
"Polish": "Wikang Polish",
|
||||
"Portuguese": "Wikang Portuges",
|
||||
"PortugueseBrazil": "Wikang Portuges - Brasil",
|
||||
"PortuguesePortugal": "Wikang Portuges - Portugal",
|
||||
"Romanian": "Wikang Rumano",
|
||||
"Russian": "Wikang Ruso",
|
||||
"Serbian": "Wikang Serbyan",
|
||||
"Slovak": "Wikang Eslobako",
|
||||
"Spanish": "Wikang Espanyol",
|
||||
"SpanishLatinAmerica": "Wikang Espanyol - Amerikanong Latino",
|
||||
"SpanishSpain": "Wikang Espanyol - Espanya",
|
||||
"Swedish": "Wikang Suweko",
|
||||
"Tamil": "Wikang Tamil",
|
||||
"Thai": "Wikang Thai",
|
||||
|
|
@ -1602,7 +1678,7 @@
|
|||
"Crag Castle": "Kastilyong Bangin",
|
||||
"Doom Shroom": "Itim na Kabute",
|
||||
"Football Stadium": "Istadyum",
|
||||
"Happy Thoughts": "Masayan na mga Isip",
|
||||
"Happy Thoughts": "Isipang Masaya",
|
||||
"Hockey Stadium": "Istadyum ng Hockey",
|
||||
"Lake Frigid": "Lawang Yelo",
|
||||
"Monkey Face": "Mukha ng Unggoy",
|
||||
|
|
@ -1645,6 +1721,7 @@
|
|||
"Cheating detected; scores and prizes suspended for ${COUNT} days.": "Natukoy ang pagdadaya; nasuspinde ang mga iskor at premyo sa loob ng ${COUNT} (na) araw.",
|
||||
"Could not establish a secure connection.": "Hindi makapagtatag ng secure na koneksyon.",
|
||||
"Daily maximum reached.": "Naabot na ang pang-araw-araw ng request.",
|
||||
"Daily sign-in reward": "Pangaraw-araw na gantimpala",
|
||||
"Entering tournament...": "Papasok sa paligsahan…",
|
||||
"Invalid code.": "Di-wasto ang kowd.",
|
||||
"Invalid payment; purchase canceled.": "Di-wastong pagbabayad; kinansela ang pagbili.",
|
||||
|
|
@ -1654,11 +1731,14 @@
|
|||
"Item unlocked!": "Na-unlock ang aytem!",
|
||||
"LINKING DENIED. ${ACCOUNT} contains\nsignificant data that would ALL BE LOST.\nYou can link in the opposite order if you'd like\n(and lose THIS account's data instead)": "TINANGGI ANG PAG-LINK. ang ${ACCOUNT} na ito\nay may makabuluhang data na maaaring MAWAWALA LAHAT.\nMaaari kang mag-link sa kabaligtaran na pagkakasunud-sunod kung gusto mo\n(at sa halip ay mawala ang data ng account na ITO)",
|
||||
"Link account ${ACCOUNT} to this account?\nAll existing data on ${ACCOUNT} will be lost.\nThis can not be undone. Are you sure?": "I-link ang account na ${ACCOUNT} sa account na ito?\nMawawala ang lahat ng umiiral na data sa ${ACCOUNT}.\nHindi na ito maaaring bawiin. Sigurado ka ba?",
|
||||
"Longer streaks lead to better rewards.": "sunod-sunod mong buksan ang larong ito, mas malaking gantimpala.",
|
||||
"Max number of playlists reached.": "Naabot na ang maximum na bilang ng mga playlist.",
|
||||
"Max number of profiles reached.": "Naabot na ang maximum na bilang ng mga profile.",
|
||||
"Maximum friend code rewards reached.": "Naabot ang maximum na mga reward sa kowd ng kaibigan.",
|
||||
"Message is too long.": "Ang mensahe ay napakahaba.",
|
||||
"New tournament result!": "Mga bagong resulta ng tournament!",
|
||||
"No servers are available. Please try again soon.": "Walang makakuha na mga server. Pakisubukang muli sa lalong madaling oras.",
|
||||
"No slots available. Free a slot and try again.": "Walang magagamit na mga puwang. Magbakante ng slot at subukang muli.",
|
||||
"Profile \"${NAME}\" upgraded successfully.": "Matagumpay na na-upgrade ang profile na \"${NAME}\".",
|
||||
"Profile could not be upgraded.": "Hindi ma-upgrade ang profile.",
|
||||
"Purchase successful!": "Matagumpay ang pagbili!",
|
||||
|
|
@ -1668,7 +1748,9 @@
|
|||
"Sorry, this code has already been used.": "Pasensya na, nagamit na ang kowd na ito.",
|
||||
"Sorry, this code has expired.": "Pasensya na, nag-expire na ang kowd na ito.",
|
||||
"Sorry, this code only works for new accounts.": "Pasensya na, gumagana lang ang kowd na ito para sa mga bagong account.",
|
||||
"Sorry, this has expired.": "Pasensya na, ito ay na-expire.",
|
||||
"Still searching for nearby servers; please try again soon.": "Naghahanap pa rin ng mga kalapit na server; mangyaring subukan muli sa lalong madaling oras.",
|
||||
"Streak: ${NUM} days": "Pagsunod-sunod: ${NUM} na araw",
|
||||
"Temporarily unavailable; please try again later.": "Pansamantalang hindi magagamit; Subukang muli mamaya.",
|
||||
"The tournament ended before you finished.": "Natapos ang tournament bago ka natapos.",
|
||||
"This account cannot be unlinked for ${NUM} days.": "Ang account na ito ay hindi maaaring i-unlink sa loob ng ${NUM} (na) araw.",
|
||||
|
|
@ -1679,19 +1761,28 @@
|
|||
"Tournaments require ${VERSION} or newer": "Ang mga paligsahan ay nangangailangan ng ${VERSION} o mas bago",
|
||||
"Unlink ${ACCOUNT} from this account?\nAll data on ${ACCOUNT} will be reset.\n(except for achievements in some cases)": "I-unlink ang ${ACCOUNT} mula sa account na ito?\nIre-reset ang lahat ng data sa ${ACCOUNT}.\n(maliban sa mga nakamit sa ilang pagkakataon)",
|
||||
"WARNING: complaints of hacking have been issued against your account.\nAccounts found to be hacking will be banned. Please play fair.": "BABALA: ang mga reklamo ng pag-hack ay inilabas laban sa iyong account.\nIpagbabawal ang mga account na makikitang nagha-hack. Mangyaring maglaro ng patas.",
|
||||
"Wait reduced!": "Nabawasan ang hintay!",
|
||||
"Warning: This version of the game is limited to old account data; things may appear missing or out of date.\nPlease upgrade to a newer version of the game to see your latest account data.": "Babala: Ang bersyon ng larong ito ay nakatakda sa lumang data; mayroong pagkawala o kupas ang nasa larawan.\nPakiusap na mapalitan ng bagong bersyon ang laro na ito upang matanawin ang kasalukuyang data.",
|
||||
"Would you like to link your device account to this one?\n\nYour device account is ${ACCOUNT1}\nThis account is ${ACCOUNT2}\n\nThis will allow you to keep your existing progress.\nWarning: this cannot be undone!\n": "Gusto mo bang i-link ang iyong device account sa isang ito?\n\nAng iyong device account ay ${ACCOUNT1}\nAng account na ito ay ${ACCOUNT2}\n\nPapayagan ka nitong panatilihin ang iyong progress.\nBabala: hindi na ito maaaring bawiin!",
|
||||
"You already own this!": "Nabili mo na ito!",
|
||||
"You can join in ${COUNT} seconds.": "Makakasali ka sa loob ng ${COUNT} segundo.",
|
||||
"You don't have enough tickets for this!": "Hindi sapat ang tickets mo para dito!",
|
||||
"You don't own that.": "Hindi sayo iyan.",
|
||||
"You got ${COUNT} tickets!": "Nakakuha ka ng ${COUNT} tickets!",
|
||||
"You got ${COUNT} tokens!": "May nakuha ka na ${COUNT} tokens!",
|
||||
"You got a ${ITEM}!": "Nakakuha ka ng ${ITEM}!",
|
||||
"You got a chest!": "Mayroon na ka chest!",
|
||||
"You got an achievement reward!": "May bago kang gantimpala sa tagumpay!",
|
||||
"You have been promoted to a new league; congratulations!": "Na-promote ka sa isang bagong liga; congrats!",
|
||||
"You lost a chest! (All your chest slots were full)": "May nawalan ka na chest! (Lahat ng chest slot mo ay puno)",
|
||||
"You must update the app to view this.": "Kailangan mong baguhin muna ang bersyon ng app na ito upang maitignan ito.",
|
||||
"You must update to a newer version of the app to do this.": "Kailangang magbago sa mas mabagong bersyon ng app para magawa ito.",
|
||||
"You must update to the newest version of the game to do this.": "Kailangang magbago sa pinakabagong bersyon ng laro upang magawa ito.",
|
||||
"You must wait a few seconds before entering a new code.": "Dapat kang maghintay ng ilang segundo bago maglagay ng bagong code.",
|
||||
"You ranked #${RANK} in the last tournament. Thanks for playing!": "Ikaw ay niraranggo ng #${RANK} sa huling paligsahan. Salamat sa paglalaro!",
|
||||
"You placed #${RANK} in a tournament!": "Nag place ka ng #${RANK} sa paligsahan!",
|
||||
"You ranked #${RANK} in the last tournament. Thanks for playing!": "Ikaw ay niraranggo ng #${RANK} sa huling paligsahan. Salamat po sa paglalaro!",
|
||||
"Your account was rejected. Are you signed in?": "Tinanggihan ang iyong account. Naka-sign in ka ba?",
|
||||
"Your ad views are not registering. Ad options will be limited for a while.": "Ang bilang ng iyong pagnood ng adbertismo ay hindi napaoarehistro. Ang iyong opsyon sa pagnood ay saglit na limitado.",
|
||||
"Your copy of the game has been modified.\nPlease revert any changes and try again.": "Ang iyong kopya ng laro ay na-modified.\nMangyaring ibalik ang anumang mga pagbabago at subukang muli.",
|
||||
"Your friend code was used by ${ACCOUNT}": "Ang code ng iyong kaibigan ay ginamit ng ${ACCOUNT}"
|
||||
},
|
||||
|
|
@ -1749,13 +1840,13 @@
|
|||
},
|
||||
"tips": {
|
||||
"A perfectly timed running-jumping-spin-punch can kill in a single hit\nand earn you lifelong respect from your friends.": "Ang isang perpektong oras na takbo-talon-ikot-suntok ay maaaring makapatay sa isang tama\nat magkaroon ka ng panghabambuhay na paggalang mula sa iyong mga kaibigan.",
|
||||
"Always remember to floss.": "Laging tandaan na magpasikat.",
|
||||
"Create player profiles for yourself and your friends with\nyour preferred names and appearances instead of using random ones.": "Ang \"Sumpa\" ay ginagawa kang isang sasabuging bomba.\nAng tanging lunas ay ang mabilisang kumuha ng \"Medikal-Pakete\".",
|
||||
"Always remember to floss.": "Laban-laban lang!",
|
||||
"Create player profiles for yourself and your friends with\nyour preferred names and appearances instead of using random ones.": "Gumawa ng mga karakter para sa iyong sarili at sa mga kaibigan mo na\nmayroong kanyang-kanyang pangalan at itsura kaysa ano-ano ang pinagpilian mo.",
|
||||
"Curse boxes turn you into a ticking time bomb.\nThe only cure is to quickly grab a health-pack.": "Ang \"Sumpa\" ay ginagawa kang isang masasaboh na bomba.\nAng tanging lunas ay ang mabilisang kumuha ng health-pack.",
|
||||
"Despite their looks, all characters' abilities are identical,\nso just pick whichever one you most closely resemble.": "Sa kabila ng kanilang hitsura, lahat ng kakayahan ng mga karakter ay magkaparehas lamang,\nkaya pumili lang kung alin ang pinakahawig mo.",
|
||||
"Don't get too cocky with that energy shield; you can still get yourself thrown off a cliff.": "Huwag masyadong maangas sa paggalaw na mayroon kang enerhiyang kalasag; pwede ka pa rin nilang ihagis mula sa isang plataporma.",
|
||||
"Don't run all the time. Really. You will fall off cliffs.": "Talagang huwag tumakbo sa lahat ng oras. Mahuhulog ka.",
|
||||
"Don't spin for too long; you'll become dizzy and fall.": "Huwag paikutin Ang iyong sarili nang masyadong mahaba; mahihilo at matumba ka.",
|
||||
"Don't spin for too long; you'll become dizzy and fall.": "Huwag paikutin Ang iyong sarili nang masyadong matagal; mahihilo at matumba ka.",
|
||||
"Hold any button to run. (Trigger buttons work well if you have them)": "Pindutin ang anumang pindutan upang tumakbo. (Mahusay na gumagana gamit ang mga pindutang kalabitan kung mayroon ka nito)",
|
||||
"Hold down any button to run. You'll get places faster\nbut won't turn very well, so watch out for cliffs.": "Pindutin nang matagal ang anumang pindutan para tumakbo. Mas mabilis kang makarating\nngunit hindi lumiko nang mahusay, kaya mag-ingat sa matalim na mga gilid",
|
||||
"Ice bombs are not very powerful, but they freeze\nwhoever they hit, leaving them vulnerable to shattering.": "Ang mga Bombang Yelo ay hindi masyadong malakas, ngunit makatigil at magyeyelo\nkung sino man ang kanilang natamaan na madaling maisira.",
|
||||
|
|
@ -1763,7 +1854,7 @@
|
|||
"If you are short on controllers, install the '${REMOTE_APP_NAME}' app\non your mobile devices to use them as controllers.": "Kung kulang ka sa mga controller, gamitin ang '${REMOTE_APP_NAME}'\nsa iyong mga gadyet upang gamitin ang mga ito bilang mga controller.",
|
||||
"If you get a sticky-bomb stuck to you, jump around and spin in circles. You might\nshake the bomb off, or if nothing else your last moments will be entertaining.": "Kung nakadikit sa iyo ang isang Bombang Malagkit, tumalon at umikot ka. Baka\nmaialis mo ang bomba mula sa iyong sarili, dili kaya'y nakakaaliw Ang iyong huling sandali.",
|
||||
"If you kill an enemy in one hit you get double points for it.": "Kapag pumatay ka ng isang kalaban sa isang tama lamang, makakakuha ka ng dobleng puntos.",
|
||||
"If you pick up a curse, your only hope for survival is to\nfind a health powerup in the next few seconds.": "Kung 'di sinadyabg nakakuha ka ng Sumpa, ang tanging pag-asa mo para mabuhay ay\nmaghanap ng Medikal-Pakete sa susunod na 5 segundo.",
|
||||
"If you pick up a curse, your only hope for survival is to\nfind a health powerup in the next few seconds.": "Kung 'di mo sinadyang nakuha ng Sumpa, ang tanging pag-asa mo para mabuhay ay\nmaghanap ng Medikal-Pakete sa susunod na 5 segundo.",
|
||||
"If you stay in one place, you're toast. Run and dodge to survive..": "Kung manatili ka sa isang lugar, wala ka na. Tumakbo at umigtad para mabuhay..",
|
||||
"If you've got lots of players coming and going, turn on 'auto-kick-idle-players'\nunder settings in case anyone forgets to leave the game.": "Kung marami kang manlalaro na dumarating at pupunta, buksan ang 'Ipalayas ang manlalarong hindi gumagalaw’\nsa ilalim ng mga setting kung sakaling may makakalimutang umalis sa laro.",
|
||||
"If your device gets too warm or you'd like to conserve battery power,\nturn down \"Visuals\" or \"Resolution\" in Settings->Graphics": "Kung masyadong mainit ang iyong device o gusto mong makatipid ng baterya,\nhanggahan ang \"Biswal” o \"Resolusyon\" sa Mga Setting->Grapika",
|
||||
|
|
@ -1777,13 +1868,13 @@
|
|||
"No, you can't get up on the ledge. You have to throw bombs.": "Hindi ka makakahawak sa ungos. Kailangan mong maghagis ng bomba.",
|
||||
"Players can join and leave in the middle of most games,\nand you can also plug and unplug controllers on the fly.": "Maaaring sumali at umalis ang mga manlalaro sa gitna ng karamihan ng mga laro,\nat maaari mo ring isaksak at magpatanggal ang mga controller nang mabilis.",
|
||||
"Practice using your momentum to throw bombs more accurately.": "Magsanay gamit ang iyong pag-udyok para maghagis ng mga bomba nang mas wasto.",
|
||||
"Punches do more damage the faster your fists are moving,\nso try running, jumping, and spinning like crazy.": "Ang mga suntok ay mas nagdudulot ng pagsaktan sa mas mabilis na paggalaw ng iyong mga kamao,\nkaya subukang tumakbo, tumalon, at umiikot na parang baliw.",
|
||||
"Punches do more damage the faster your fists are moving,\nso try running, jumping, and spinning like crazy.": "Ang mga suntok ay mas nagdudulot ng pagsaktan sa mas mabilis na paggalaw ng iyong mga kamay,\nkaya subukang tumakbo, tumalon, at umiikot na parang baliw.",
|
||||
"Run back and forth before throwing a bomb\nto 'whiplash' it and throw it farther.": "Patakbong pabalik-balik bago maghagis ng bomba\nupang ‘ma-ikot’ ito at ihagis ito nang mas malayo.",
|
||||
"Take out a group of enemies by\nsetting off a bomb near a TNT box.": "Magpatay ang isang grupo ng mga kalaban sa pamamagitan ng\npagsabog ng bomba malapit sa isang kahong TNT.",
|
||||
"The head is the most vulnerable area, so a sticky-bomb\nto the noggin usually means game-over.": "Ang ulo ay ang pinakamatalban na parte, kaya isang Bombang Malagkit \nna lumapag sa ulo mo ay dedma ka na.",
|
||||
"This level never ends, but a high score here\nwill earn you eternal respect throughout the world.": "Ang anyas na ito ay hindi kailanman nagtatapos, ngunit isang mataas na iskor dito\nbibigyan ka ng walang hanggang paggalang mula sa buong mundo.",
|
||||
"Throw strength is based on the direction you are holding.\nTo toss something gently in front of you, don't hold any direction.": "Ang lakas ng paghagis ay batay sa direksyon na iyong hinahawakan.\nUpang ihagis ang isang bagay nang malumanay sa harap mo, huwag maitungo sa anumang direksyon.",
|
||||
"Tired of the soundtrack? Replace it with your own!\nSee Settings->Audio->Soundtrack": "Pagod na sa mga soundtrack? Palitan nito ng iyong sarili!\nTingnan ang Mga Setting->Tutugan->Mga Soundtrack",
|
||||
"Tired of the soundtrack? Replace it with your own!\nSee Settings->Audio->Soundtrack": "Pagod na sa mga soundtrack? Palitan nito ng iyong sarili!\nTignan ang Mga Setting->Tugtugan->Mga Soundtrack",
|
||||
"Try 'Cooking off' bombs for a second or two before throwing them.": "Try mo \"Itiisin” ang mga bomba sa isang segundo o dalawa bago mo ihagis.",
|
||||
"Try tricking enemies into killing eachother or running off cliffs.": "Subukang linlangin ang mga kalaban sa pagsuntok sa isa't isa o pahulog sa mga gilid.",
|
||||
"Use the pick-up button to grab the flag < ${PICKUP} >": "Gamitin ang pindutang \"Pulutin\" para makunin ang bandera < ${PICKUP} >",
|
||||
|
|
@ -1834,19 +1925,20 @@
|
|||
"randomName3Text": "Stephen",
|
||||
"randomName4Text": "Joshua",
|
||||
"randomName5Text": "Villar",
|
||||
"skipConfirmText": "Sure ka ba na i-skip ang tutorial? Tap o pindutin para ma i-confirm.",
|
||||
"skipConfirmText": "Sigurado ka ba na laktawin ang tutorial? I-tap o pindutin para sigurado ka.",
|
||||
"skipVoteCountText": "${COUNT}/${TOTAL} boto na gustong laktawan",
|
||||
"skippingText": "Nilalaktawan ang tutorial",
|
||||
"skippingText": "Nilalaktawan ang tutorial...",
|
||||
"toSkipPressAnythingText": "(i-tap o pindutin ang anuman para laktawan ang tutorial)"
|
||||
},
|
||||
"twoKillText": "DOBLENG PAGPATAY!!",
|
||||
"uiScaleText": "UI Scale",
|
||||
"uiScaleText": "Sukat Ng UI",
|
||||
"unavailableText": "hindi pwede",
|
||||
"unclaimedPrizesText": "May mga premyo ka pang hindi nakukuha!",
|
||||
"unconfiguredControllerDetectedText": "Naktuklas ang hindi naka-configure na controller:",
|
||||
"unlockThisInTheStoreText": "Ito ay dapat na naka-unlock sa tindahan.",
|
||||
"unlockThisProfilesText": "Upang lumikha ng higit sa ${NUM} na mga profile, kailangan mo:",
|
||||
"unlockThisText": "Upang i-unlock ito, kailangan mo ng:",
|
||||
"unsupportedControllerText": "Sorry, ang pangalan na \"${NAME}\" ay hindi pa supported.",
|
||||
"unsupportedControllerText": "Pasensya na, ang pangalan na \"${NAME}\" ay hindi naipataguyod.",
|
||||
"unsupportedHardwareText": "Pasensya na, ang hardware na ito ay hindi suportado ng build na ito ng laro.",
|
||||
"upFirstText": "Bumangon muna:",
|
||||
"upNextText": "Susunod sa larong ${COUNT}:",
|
||||
|
|
@ -1859,6 +1951,7 @@
|
|||
"usesExternalControllerText": "Gumagamit ang larong ito ng external na controller para sa input.",
|
||||
"usingItunesText": "Paggamit ng Music App para sa soundtrack...",
|
||||
"v2AccountLinkingInfoText": "Upang ma-link ang mga V2 account mo, dumeretso ka sa “I-Manage ang Account“.",
|
||||
"v2AccountRequiredText": "Kailangan Ang iyong V2 account para rito. Itaas ang grado ng iyong account at ulitin.",
|
||||
"validatingTestBuildText": "Pinapatunayan ang Test Build...",
|
||||
"viaText": "via",
|
||||
"victoryText": "Panalo!",
|
||||
|
|
@ -1902,19 +1995,19 @@
|
|||
"pressText2": "Sa mas bagong Wiimotes na may built in na Motion Plus, pindutin na lang ang pulang 'sync' na button sa likod."
|
||||
},
|
||||
"wiimoteSetupWindow": {
|
||||
"copyrightText": "Copyright ni DarwinRemote",
|
||||
"copyrightText": "Copyright ni DarwinRemote ",
|
||||
"listenText": "Makinig",
|
||||
"macInstructionsText": "Tiyaking naka-off ang iyong Wii at naka-enable ang Bluetooth\nsa iyong Mac, pagkatapos ay pindutin ang 'Makinig'. Maaari ang suporta ng Wiimote\nmaging medyo patumpik-tumpik, kaya maaaring kailanganin mong subukan ng ilang beses\nbago ka magkaroon ng koneksyon.\n\nDapat hawakan ng Bluetooth ang hanggang 7 konektadong device,\nkahit na ang iyong mileage ay maaaring mag-iba.\n\nSinusuportahan ng BombSquad ang orihinal na Wiimotes, Nunchuks,\nat ang Klasikong Controller.\nGumagana na rin ang mas bagong Wii Remote Plus\nngunit hindi sa mga kalakip.",
|
||||
"thanksText": "Salamat sa DarwiinRemote team\nPara maging posible ito.",
|
||||
"titleText": "Pag-setup ng Wiimote"
|
||||
"titleText": "Pag-setup ng Wiimote "
|
||||
},
|
||||
"winsPlayerText": "Nanalo si ${NAME}!",
|
||||
"winsTeamText": "Nanalo ang ${NAME}!",
|
||||
"winsText": "${NAME} Nanalo!",
|
||||
"workspaceSyncErrorText": "Error sa pag-sync ng ${WORKSPACE}. Tingnan ang log para sa mga detalye.",
|
||||
"workspaceSyncReuseText": "Hindi ma-sync ang ${WORKSPACE}. Muling paggamit ng nakaraang naka-sync na bersyon.",
|
||||
"worldScoresUnavailableText": "Ang mga score sa buong Mundo ay hindi makuha.",
|
||||
"worldsBestScoresText": "Pinakamahusay na Iskor ng Mundo",
|
||||
"worldScoresUnavailableText": "Hindi makuha ang mga pandaigdigang iskor.",
|
||||
"worldsBestScoresText": "Pinakamahusay na Iskor sa Mundo",
|
||||
"worldsBestTimesText": "Oras ng Pinakamabilis sa Mundo",
|
||||
"xbox360ControllersWindow": {
|
||||
"getDriverText": "Kunin ang Driver",
|
||||
|
|
@ -1925,5 +2018,6 @@
|
|||
},
|
||||
"yesAllowText": "Sige!",
|
||||
"yourBestScoresText": "Pinakamataas Mong Iskor",
|
||||
"yourBestTimesText": "Pinakamabilis Mong Oras"
|
||||
"yourBestTimesText": "Pinakamabilis Mong Oras",
|
||||
"yourPrizeText": "Premyo mo:"
|
||||
}
|
||||
121
dist/ba_data/data/languages/french.json
vendored
121
dist/ba_data/data/languages/french.json
vendored
|
|
@ -7,7 +7,9 @@
|
|||
"campaignProgressText": "Progression de la campagne [Difficile]: ${PROGRESS}",
|
||||
"changeOncePerSeason": "Vous ne pouvez changer cela qu'une fois par saison.",
|
||||
"changeOncePerSeasonError": "Vous devez attendre la prochaine saison pour le modifier à nouveau (${NUM} jours)",
|
||||
"createAnAccountText": "Créer un compte",
|
||||
"customName": "Nom personnalisé",
|
||||
"deleteAccountText": "Supprimer le compte",
|
||||
"googlePlayGamesAccountSwitchText": "Si vous voulez utiliser un autre compte Google, \nutilisez l'application Google Play Games pour le changer.",
|
||||
"linkAccountsEnterCodeText": "Entrer code",
|
||||
"linkAccountsGenerateCodeText": "Générez votre code",
|
||||
|
|
@ -26,6 +28,7 @@
|
|||
"setAccountNameDesc": "Sélectionnez le nom à afficher pour votre compte.\nVous pouvez utiliser le nom d'un de vos comptes\n associés ou créer un nom personnalisé unique.",
|
||||
"signInInfoText": "Connectez-vous pour gagner des tickets, participer aux tournois en ligne,\net partager votre progression entre plusieurs appareils.",
|
||||
"signInText": "Connexion",
|
||||
"signInWithAnEmailAddressText": "Connectez-vous avec une adresse e-mail",
|
||||
"signInWithDeviceInfoText": "(un compte généré automatiquement utilisable seulement sur cet appareil)",
|
||||
"signInWithDeviceText": "Connectez-vous avec le compte de cet appareil",
|
||||
"signInWithGameCircleText": "Connectez-vous avec Game Circle",
|
||||
|
|
@ -34,7 +37,7 @@
|
|||
"signInWithTestAccountText": "Connectez-vous avec un compte test",
|
||||
"signInWithText": "Connectez-vous avec ${SERVICE}",
|
||||
"signInWithV2InfoText": "(un compte qui fonctionne sur toutes les plateformes)",
|
||||
"signInWithV2Text": "Connectez-vous avec un compte Bombsquad",
|
||||
"signInWithV2Text": "Connectez-vous avec un compte ${APP_NAME}",
|
||||
"signOutText": "Se déconnecter",
|
||||
"signingInText": "Connexion...",
|
||||
"signingOutText": "Déconnexion...",
|
||||
|
|
@ -346,6 +349,8 @@
|
|||
"allowText": "Autoriser",
|
||||
"alreadySignedInText": "Votre compte est connecté sur un autre appareil;\nveuillez changer de compte ou fermez le jeu sur \nles autres appareils et réessayez.",
|
||||
"apiVersionErrorText": "Impossible de charger le jeu ${NAME}; sa version api est ${VERSION_USED}; nous demandons la version ${VERSION_REQUIRED}.",
|
||||
"applyText": "Appliquer",
|
||||
"areYouSureText": "Êtes-vous sûr ?",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(\"Auto\" s'active seulement quand un casque est branché)",
|
||||
"headRelativeVRAudioText": "Son à position relative (RV)",
|
||||
|
|
@ -371,14 +376,23 @@
|
|||
"boostText": "Accroître",
|
||||
"bsRemoteConfigureInAppText": "${REMOTE_APP_NAME} est configuré dans sa propre application.",
|
||||
"buttonText": "bouton",
|
||||
"canWeDebugText": "Voulez-vous que BombSquad envoie automatiquement un rapport des bugs, \ncrashs et certaines informations relatives au jeu au développeur?\n\nCes rapports ne contiendront aucune information personnelle \net aideront à maintenir un jeu sans bugs ni ralentissements.",
|
||||
"canWeDebugText": "Voulez-vous que ${APP_NAME} envoie automatiquement un rapport des bugs, \ncrashs et certaines informations relatives au jeu au développeur?\n\nCes rapports ne contiendront aucune information personnelle \net aideront à maintenir un jeu sans bugs ni ralentissements.",
|
||||
"cancelText": "Annuler",
|
||||
"cantConfigureDeviceText": "Désolé, ${DEVICE} ne peut pas être configuré.",
|
||||
"challengeEndedText": "Ce défi est terminé.",
|
||||
"chatMuteText": "Tchat muet",
|
||||
"chatMutedText": "Tchat muet",
|
||||
"chatUnMuteText": "Réactiver tchat",
|
||||
"chests": {
|
||||
"prizeOddsText": "Chances de prix",
|
||||
"reduceWaitText": "Réduire l'attente",
|
||||
"slotDescriptionText": "Cet emplacement peut contenir un coffre.\n\nGagnez des coffres en jouant à des niveaux\nde campagne, en participant à des tournois\net en terminant les succès.",
|
||||
"slotText": "Coffre n° ${NUM}",
|
||||
"slotsFullWarningText": "ATTENTION: tous vos coffres sont pleins.\nLes coffres gagnés dans ce jeu seront perdus.",
|
||||
"unlocksInText": "Se débloque dans"
|
||||
},
|
||||
"choosingPlayerText": "<choix du joueur>",
|
||||
"claimText": "Réclamer",
|
||||
"codesExplainText": "Les codes sont fournis par le développeur pour \ndiagnostiquer et corriger les problèmes de compte.",
|
||||
"completeThisLevelToProceedText": "Vous devez compléter ce \nniveau pour continuer!",
|
||||
"completionBonusText": "Bonus de fin",
|
||||
|
|
@ -574,6 +588,7 @@
|
|||
"demoText": "Démo",
|
||||
"denyText": "Refuser",
|
||||
"deprecatedText": "Obsolète",
|
||||
"descriptionText": "Description",
|
||||
"desktopResText": "Résolution de l'Ordinateur",
|
||||
"deviceAccountUpgradeText": "Avertissement:\nVous etes connecté avec un compte d'appareil (${NAME}).\nLes comptes d'appareils seront enlevés dans une future mise à jour.\nMettez à jour vers un compte V2 si vous voulez garder votre progression.",
|
||||
"difficultyEasyText": "Facile",
|
||||
|
|
@ -585,6 +600,7 @@
|
|||
"disableXInputDescriptionText": "Permet plus que 4 manettes mais risque de malfonctionner.",
|
||||
"disableXInputText": "Désactiver XInput",
|
||||
"disabledText": "Désactivé",
|
||||
"discardText": "Rejeter",
|
||||
"discordFriendsText": "Vous voulez chercher de nouvelles personnes avec qui jouer ? \nRejoignez notre Discord et trouvez de nouveaux amis !",
|
||||
"discordJoinText": "Rejoignez le Discord",
|
||||
"doneText": "Terminé",
|
||||
|
|
@ -673,6 +689,8 @@
|
|||
"errorText": "Erreur",
|
||||
"errorUnknownText": "erreur inconnue",
|
||||
"exitGameText": "Quitter ${APP_NAME}?",
|
||||
"expiredAgoText": "Expiré il y a ${T}",
|
||||
"expiresInText": "Expire dans ${T}",
|
||||
"exportSuccessText": "'${NAME}' exporté.",
|
||||
"externalStorageText": "Stockage Externe",
|
||||
"failText": "Échec",
|
||||
|
|
@ -739,6 +757,7 @@
|
|||
"copyCodeConfirmText": "Le code a bien été copié dans le presse-papier.",
|
||||
"copyCodeText": "Copier le code",
|
||||
"dedicatedServerInfoText": "Pour un meilleur résultat, créez un server dédié. Voir bombsquadgame.com/server pour plus d'infos.",
|
||||
"descriptionShortText": "Utilisez la fenêtre de regroupement pour constituer un groupe.",
|
||||
"disconnectClientsText": "Ceci déconnectera le(s) ${COUNT} joueur(s)\nde votre partie. Êtes-vous sûr?",
|
||||
"earnTicketsForRecommendingAmountText": "Vos amis recevront ${COUNT} tickets si ils essayent le jeu\n(et vous recevrez ${YOU_COUNT} pour chacun d'entre eux qui le feront)",
|
||||
"earnTicketsForRecommendingText": "Partagez le jeu pour \ndes tickets gratuits...",
|
||||
|
|
@ -751,10 +770,10 @@
|
|||
"friendHasSentPromoCodeText": "${COUNT} tickets ${APP_NAME} de la part de ${NAME}",
|
||||
"friendPromoCodeAwardText": "Vous recevrez ${COUNT} tickets à chaque fois qu'il sera utilisé.",
|
||||
"friendPromoCodeExpireText": "Ce code expirera dans ${EXPIRE_HOURS} heures et ne fonctionne que pour les nouveaux joueurs.",
|
||||
"friendPromoCodeInstructionsText": "Pour l'utiliser, ouvrez ${APP_NAME} puis aller dans \"Paramètres->Avancé->Entrer code\".\nAllez sur bombsquadgame.com pour les liens de téléchargement pour toutes les plateformes supportées.",
|
||||
"friendPromoCodeInstructionsText": "Pour l'utiliser, ouvrez ${APP_NAME} puis allez dans \"Paramètres -> Avancé -> Entrer code\".\nAllez sur bombsquadgame.com pour les liens de téléchargement pour toutes les plateformes supportées.",
|
||||
"friendPromoCodeRedeemLongText": "Peut être utilisé pour ${COUNT} tickets gratuits jusqu'à ${MAX_USES} personnes maximum.",
|
||||
"friendPromoCodeRedeemShortText": "Il peut-être utilisé pour ${COUNT} tickets dans le jeu.",
|
||||
"friendPromoCodeWhereToEnterText": "(dans \"Paramètres->Avancé->Entrer code\")",
|
||||
"friendPromoCodeWhereToEnterText": "(dans \"Paramètres -> Avancé -> Envoyer information\")",
|
||||
"getFriendInviteCodeText": "Obtenir un Code pour Inviter mes Amis",
|
||||
"googlePlayDescriptionText": "Invitez des joueurs Google Play à votre partie:",
|
||||
"googlePlayInviteText": "Inviter",
|
||||
|
|
@ -860,6 +879,12 @@
|
|||
"youHaveShortText": "vous avez ${COUNT}",
|
||||
"youHaveText": "vous avez ${COUNT} tickets"
|
||||
},
|
||||
"goldPass": {
|
||||
"desc1InfTokensText": "Jetons infini.",
|
||||
"desc2NoAdsText": "Aucune publicités.",
|
||||
"desc3ForeverText": "Pour toujours.",
|
||||
"goldPassText": "Pass d'or"
|
||||
},
|
||||
"googleMultiplayerDiscontinuedText": "Désolé, le service multijoueur de Google n'est plus disponible.\nJe travaille sur un moyen de le remplacer aussi vite que possible.\nEn attendant, veuillez essayer une nouvelle méthode de connexion.\n-Eric",
|
||||
"googlePlayPurchasesNotAvailableText": "Les achats Google Play ne sont pas disponibles.\nVous avez peut-être besoin de mettre à jour votre Google play",
|
||||
"googlePlayServicesNotAvailableText": "Les services Google Play sont indisponibles.\nCertaines fonctions de l'application peuvent être désactivées.",
|
||||
|
|
@ -947,6 +972,7 @@
|
|||
"importText": "Importer",
|
||||
"importingText": "Importation...",
|
||||
"inGameClippedNameText": "dans le jeu sera\n\"${NAME}\"",
|
||||
"inboxText": "Messages",
|
||||
"installDiskSpaceErrorText": "ERREUR: Incapable de compléter l'installation.\nL'appareil manque paut-être d'espace.\nLibérez de l'espace et ressayez.",
|
||||
"internal": {
|
||||
"arrowsToExitListText": "appuyez sur ${LEFT} ou ${RIGHT} pour quitter la liste",
|
||||
|
|
@ -1003,12 +1029,14 @@
|
|||
"touchScreenJoinWarningText": "Vous avez joint avec l'écran tactile.\nSi c'était une erreur, touchez 'Menu->Quitter le Jeu'.",
|
||||
"touchScreenText": "Écran Tactile",
|
||||
"trialText": "test",
|
||||
"unableToCompleteTryAgainText": "Impossible de terminer l'opération.\nRéessayez plus tard.",
|
||||
"unableToResolveHostText": "Erreur: impossible de résoudre l'hôte.",
|
||||
"unavailableNoConnectionText": "Pas disponible à l'instant (pas de connexion internet?)",
|
||||
"vrOrientationResetCardboardText": "Utilisez ceci pour réinitialiser l'orientation RV.\nPour jouer au jeu vous aurez besoin d'un contrôleur externe.",
|
||||
"vrOrientationResetText": "Réinitialiser l'orientation RV.",
|
||||
"willTimeOutText": "(expirera si inactive)"
|
||||
},
|
||||
"inventoryText": "Inventaire",
|
||||
"jumpBoldText": "SAUT",
|
||||
"jumpText": "Saut",
|
||||
"keepText": "Garder",
|
||||
|
|
@ -1055,8 +1083,11 @@
|
|||
"seasonEndsMinutesText": "La saison se termine dans ${NUMBER} minutes.",
|
||||
"seasonText": "Saison ${NUMBER}",
|
||||
"tournamentLeagueText": "Vous devez atteindre la ligue ${NAME} pour participer à ce tournoi.",
|
||||
"trophyCountsResetText": "Les trophées seront remis à zéro la saison suivante."
|
||||
"trophyCountsResetText": "Les trophées seront remis à zéro la saison suivante.",
|
||||
"upToDateBonusDescriptionText": "Les joueurs qui utilisent une version récente\ndu jeu reçoivent un bonus de ${PERCENT}%.",
|
||||
"upToDateBonusText": "à jour = bonus"
|
||||
},
|
||||
"learnMoreText": "En savoir plus",
|
||||
"levelBestScoresText": "Meilleurs scores dans ${LEVEL}",
|
||||
"levelBestTimesText": "Meilleurs temps dans ${LEVEL}",
|
||||
"levelFastestTimesText": "Meilleurs temps en ${LEVEL}",
|
||||
|
|
@ -1103,6 +1134,8 @@
|
|||
"modeArcadeText": "Mode Arcade",
|
||||
"modeClassicText": "Mode classique",
|
||||
"modeDemoText": "Mode Demo",
|
||||
"moreSoonText": "Plus à venir bientôt...",
|
||||
"mostDestroyedPlayerText": "Joueur le plus détruit",
|
||||
"mostValuablePlayerText": "Meilleur joueur",
|
||||
"mostViolatedPlayerText": "Joueur le plus violenté",
|
||||
"mostViolentPlayerText": "Joueur le plus violent",
|
||||
|
|
@ -1119,6 +1152,7 @@
|
|||
"nameSuicideText": "${NAME} s'est suicidé.",
|
||||
"nameText": "Nom",
|
||||
"nativeText": "Native",
|
||||
"newExclaimText": "Nouveau !",
|
||||
"newPersonalBestText": "Nouveau record personnel!",
|
||||
"newTestBuildAvailableText": "Une nouvelle version test est disponible ! (${VERSION} ${BUILD}).\nObtenez à ${ADDRESS}",
|
||||
"newText": "Nouveau",
|
||||
|
|
@ -1130,6 +1164,7 @@
|
|||
"noExternalStorageErrorText": "Aucun stockage externe a été trouvé pour cet appareil",
|
||||
"noGameCircleText": "Erreur: vous n'êtes pas connecté au GameCircle",
|
||||
"noJoinCoopMidwayText": "Vous ne pouvez pas rejoindre une partie co-cop en plein milieu.",
|
||||
"noMessagesText": "Aucun message.",
|
||||
"noPluginsInstalledText": "Aucun Plug-in installé",
|
||||
"noProfilesErrorText": "Vous avez aucun profil de joueur, vous êtes donc coincés avec '${NAME}'.\nAllez à Paramètres->Profils des Joueurs pour vous créer un profil.",
|
||||
"noScoresYetText": "Aucun score pour le moment.",
|
||||
|
|
@ -1139,6 +1174,7 @@
|
|||
"noValidMapsErrorText": "Aucune carte valide a été trouvée pour ce type de jeu.",
|
||||
"notEnoughPlayersRemainingText": "Pas assez de joueurs restant; quittez et commencez un nouveau jeu.",
|
||||
"notEnoughPlayersText": "Vous avez besoin d'au moins ${COUNT} joueurs pour commencer ce jeu!",
|
||||
"notEnoughTicketsText": "Pas assez de tickets!",
|
||||
"notNowText": "Pas maintenant",
|
||||
"notSignedInErrorText": "Vous devez vous connecter pour faire ceci.",
|
||||
"notSignedInGooglePlayErrorText": "Vous devez vous connecter avec Google Play pour faire ceci.",
|
||||
|
|
@ -1151,6 +1187,9 @@
|
|||
"onText": "Activé",
|
||||
"oneMomentText": "Juste un moment...",
|
||||
"onslaughtRespawnText": "${PLAYER} réapparaîtra à la vague ${WAVE}",
|
||||
"openMeText": "Ouvrez-moi !",
|
||||
"openNowText": "Ouvrir mnt",
|
||||
"openText": "Ouvrir",
|
||||
"orText": "${A} ou ${B}",
|
||||
"otherText": "Autre...",
|
||||
"outOfText": "(#${RANK} sur ${ALL})",
|
||||
|
|
@ -1244,6 +1283,8 @@
|
|||
"punchText": "Frapper",
|
||||
"purchaseForText": "Achetez pour ${PRICE}",
|
||||
"purchaseGameText": "Acheter le Jeu",
|
||||
"purchaseNeverAvailableText": "Désolé, les achats son indisponible sur cette version.\nEssayez de vous connecter à votre compte sur un autre appareil et effectuer un achat depuis ce dernier.",
|
||||
"purchaseNotAvailableText": "Cet achat est indisponible.",
|
||||
"purchasingText": "Achat en cours...",
|
||||
"quitGameText": "Quitter ${APP_NAME}?",
|
||||
"quittingIn5SecondsText": "Le jeu fermera dans 5 secondes...",
|
||||
|
|
@ -1286,6 +1327,7 @@
|
|||
"version_mismatch": "Mauvaise version.\nVérifiez que BombSquad et BombSquad Remote \nsont mis à jour et réessayez."
|
||||
},
|
||||
"removeInGameAdsText": "Débloquez \"${PRO}\" dans le magasin pour enlever les annonces.",
|
||||
"removeInGameAdsTokenPurchaseText": "OFFRE À DURÉE LIMITÉE: achetez UN pack de jetons pour retirer les pubs.",
|
||||
"renameText": "Renommer",
|
||||
"replayEndText": "Terminer la Reprise",
|
||||
"replayNameDefaultText": "Reprise du Match Précédent",
|
||||
|
|
@ -1320,6 +1362,7 @@
|
|||
},
|
||||
"scoreWasText": "(A été ${COUNT})",
|
||||
"selectText": "Sélectionner",
|
||||
"sendInfoDescriptionText": "Envoyez des informations sur l'état du compte et de l'application au développeur.\nVeuillez inclure votre nom ou la raison de l'envoi.",
|
||||
"seriesWinLine1PlayerText": "A GAGNÉ LA",
|
||||
"seriesWinLine1TeamText": "A GAGNÉ LA",
|
||||
"seriesWinLine1Text": "A GAGNÉ",
|
||||
|
|
@ -1339,14 +1382,17 @@
|
|||
"alwaysUseInternalKeyboardDescriptionText": "(un simple clavier sur l'écran pour taper du texte)",
|
||||
"alwaysUseInternalKeyboardText": "Toujours utiliser le clavier interne",
|
||||
"benchmarksText": "Benchmarks et Tests de Stress",
|
||||
"devToolsText": "Outils de développeur",
|
||||
"disableCameraGyroscopeMotionText": "Désactiver le mouvement de gyroscope de la caméra",
|
||||
"disableCameraShakeText": "Désactiver le tremblement de la camera",
|
||||
"disableCameraShakeText": "Désactiver le tremblement de la caméra",
|
||||
"disableThisNotice": "(vous pouvez désactiver cette notification dans les paramètres avancés)",
|
||||
"enablePackageModsDescriptionText": "(activer plusieurs capabilités des mods mais désactiver le jeu en réseau)",
|
||||
"enablePackageModsText": "Activer les Packages Mods Locaux",
|
||||
"enterPromoCodeText": "Entrez code",
|
||||
"forTestingText": "Note: ces valeurs sont exclusivement pour les tests et seront perdus à la fermeture de l'application.",
|
||||
"helpTranslateText": "Les traductions de ${APP_NAME} proviennent des efforts de \nla communauté. Si vous voulez contribuer ou corriger une \ntraduction, suivez le lien ci-dessous. Merci d'avance!",
|
||||
"insecureConnectionsDescriptionText": "Non recommandé, mais peut permettre le jeu en ligne \ndepuis des pays ou des réseaux restreints.",
|
||||
"insecureConnectionsText": "Utilisez des connexions non sécurisées",
|
||||
"kickIdlePlayersText": "Déconnecter les joueurs inactifs",
|
||||
"kidFriendlyModeText": "Mode Enfant-Gentil (moins de violence, etc)",
|
||||
"languageText": "Langue",
|
||||
|
|
@ -1355,10 +1401,12 @@
|
|||
"mustRestartText": "Vous devez redémarrer le jeu pour que les changements prennent effet.",
|
||||
"netTestingText": "Tester Votre Réseau",
|
||||
"resetText": "Réinitialiser",
|
||||
"sendInfoText": "Envoyer des informations",
|
||||
"showBombTrajectoriesText": "Montrer les trajectoires de bombe",
|
||||
"showDemosWhenIdleText": "Afficher les démos en cas d'inactivité",
|
||||
"showDevConsoleButtonText": "Afficher le Bouton de la Console de Développeur",
|
||||
"showInGamePingText": "Afficher La Latence En Jeu",
|
||||
"showDemosWhenIdleText": "Afficher les démonstrations en cas d'inactivité",
|
||||
"showDeprecatedLoginTypesText": "Afficher les types de connexions obsolètes",
|
||||
"showDevConsoleButtonText": "Afficher le bouton de la console de développeur",
|
||||
"showInGamePingText": "Afficher la latence en jeu",
|
||||
"showPlayerNamesText": "Montrer les Noms des Joueurs",
|
||||
"showUserModsText": "Montrer le Dossier des Mods",
|
||||
"titleText": "Avancé",
|
||||
|
|
@ -1366,8 +1414,8 @@
|
|||
"translationFetchErrorText": "statut de la traduction indisponible",
|
||||
"translationFetchingStatusText": "vérification du statut de la traduction...",
|
||||
"translationInformMe": "M'avertir quand ma langue a besoin de mises à jour",
|
||||
"translationNoUpdateNeededText": "ce langage est à jour; woohoo!",
|
||||
"translationUpdateNeededText": "** ce langage à besoin des modifications!! **",
|
||||
"translationNoUpdateNeededText": "Cette langue est à jour; youpi !",
|
||||
"translationUpdateNeededText": "** Cette langue a besoin de modification ! **",
|
||||
"vrTestingText": "Test de la RV"
|
||||
},
|
||||
"shareText": "Partager",
|
||||
|
|
@ -1405,6 +1453,7 @@
|
|||
},
|
||||
"spaceKeyText": "espace",
|
||||
"statsText": "Stats",
|
||||
"stopRemindingMeText": "Ne plus me le rappeler",
|
||||
"storagePermissionAccessText": "Cette action a besoin de l'accès au stockage",
|
||||
"store": {
|
||||
"alreadyOwnText": "Vous avez déja acheté ${NAME}!",
|
||||
|
|
@ -1468,6 +1517,7 @@
|
|||
"testBuildValidatedText": "Version Test Validée; Amusez-Vous!",
|
||||
"thankYouText": "Merci pour votre soutien! Amusez-vous!!",
|
||||
"threeKillText": "TRIPLE MEURTRE!!!",
|
||||
"ticketsDescriptionText": "Utilisez les tickets pour débloquer des personnages,\ncartes, mini-jeux, et d'autres dans la boutique.\n\nTrouvez les tickets dans des coffres gagnés grâce aux\ncampagnes, tournois et succès.",
|
||||
"timeBonusText": "Bonus de Temps",
|
||||
"timeElapsedText": "Temps Passé",
|
||||
"timeExpiredText": "Temps Expiré",
|
||||
|
|
@ -1478,10 +1528,24 @@
|
|||
"tipText": "Conseil",
|
||||
"titleText": "BombSquad",
|
||||
"titleVRText": "RV BombSquad",
|
||||
"tokens": {
|
||||
"getTokensText": "Obtenir des jetons",
|
||||
"notEnoughTokensText": "Vous n'avez pas assez de jetons !",
|
||||
"numTokensText": "${COUNT} Jetons",
|
||||
"openNowDescriptionText": "Vous avez assez de jetons pour\nouvrir ceci maintenant - vous n’avez\npas besoin d’attendre.",
|
||||
"shinyNewCurrencyText": "La nouvelle monnaie brillante de BombSquad.",
|
||||
"tokenPack1Text": "Petit paquet de jeton",
|
||||
"tokenPack2Text": "Paquet de jeton moyen",
|
||||
"tokenPack3Text": "Grand paquet de jeton",
|
||||
"tokenPack4Text": "Paquet géant de jeton",
|
||||
"tokensDescriptionText": "Les jetons permettent d'accélérer le déblocage des coffres\net pour d'autres fonctionnalités du jeu et du compte.\n\nVous pouvez gagner des jetons dans le jeu ou les acheter\nen packs. Ou achetez un Pass Or pour des jetons infinis\net n'en entendez plus jamais parler.",
|
||||
"youHaveGoldPassText": "Vous avez un pass d'or.\nTout les achats de jeton sont gratuit.\nProfitez-en !"
|
||||
},
|
||||
"topFriendsText": "Les amis les mieux classés",
|
||||
"tournamentCheckingStateText": "Vérification de l'état du tournoi; attendez SVP...",
|
||||
"tournamentEndedText": "Ce tournoi est terminé. Un nouveau commencera bientôt.",
|
||||
"tournamentEntryText": "Inscription au Tournoi",
|
||||
"tournamentFinalStandingsText": "Classement final",
|
||||
"tournamentResultsRecentText": "Résultats des Tournois Récents",
|
||||
"tournamentStandingsText": "Classements du Tournoi",
|
||||
"tournamentText": "Tournoi",
|
||||
|
|
@ -1555,6 +1619,18 @@
|
|||
"Uber Onslaught": "Bousculade Uber",
|
||||
"Uber Runaround": "Défense du portail Uber"
|
||||
},
|
||||
"displayItemNames": {
|
||||
"${C} Tickets": "${C} Tickets",
|
||||
"${C} Tokens": "${C} Jetons",
|
||||
"Chest": "Coffre",
|
||||
"L1 Chest": "Coffre N1",
|
||||
"L2 Chest": "Coffre N2",
|
||||
"L3 Chest": "Coffre N3",
|
||||
"L4 Chest": "Coffre N4",
|
||||
"L5 Chest": "Coffre N5",
|
||||
"L6 Chest": "Coffre N6",
|
||||
"Unknown Chest": "Coffre inconnu"
|
||||
},
|
||||
"gameDescriptions": {
|
||||
"Be the chosen one for a length of time to win.\nKill the chosen one to become it.": "Restez l'élu pendant un certain temps pour gagner.\nTuez l'élu pour devenir l'élu.",
|
||||
"Bomb as many targets as you can.": "Bombardez autant de cibles que vous pouvez.",
|
||||
|
|
@ -1660,6 +1736,7 @@
|
|||
"Korean": "Coréen",
|
||||
"Malay": "Malais",
|
||||
"Persian": "Persan",
|
||||
"PirateSpeak": "Parole de pirate",
|
||||
"Polish": "Polonais",
|
||||
"Portuguese": "Portugais",
|
||||
"Romanian": "Roumain",
|
||||
|
|
@ -1734,6 +1811,7 @@
|
|||
"Cheating detected; scores and prizes suspended for ${COUNT} days.": "Tricherie détectée, scores et prix suspendus pour ${COUNT} jours.",
|
||||
"Could not establish a secure connection.": "Impossible d'établir une connexion sécurisé.",
|
||||
"Daily maximum reached.": "Limite quotidienne atteinte.",
|
||||
"Daily sign-in reward": "Décompense de connexion quotidienne",
|
||||
"Entering tournament...": "Accès au tournoi...",
|
||||
"Invalid code.": "Code invalide.",
|
||||
"Invalid payment; purchase canceled.": "Payement invalide. Achat annulé.",
|
||||
|
|
@ -1743,11 +1821,14 @@
|
|||
"Item unlocked!": "Article débloqué!",
|
||||
"LINKING DENIED. ${ACCOUNT} contains\nsignificant data that would ALL BE LOST.\nYou can link in the opposite order if you'd like\n(and lose THIS account's data instead)": "LIEN REFUSÉ. ${ACCOUNT} contient des\ndonnées importantes qui seraient perdus.\nVous pouvez lier dans l'ordre inverse si vous le souhaitez\n(et perdre les données de CE compte à la place)",
|
||||
"Link account ${ACCOUNT} to this account?\nAll existing data on ${ACCOUNT} will be lost.\nThis can not be undone. Are you sure?": "Lier le compte ${ACCOUNT} à ce compte?\nToutes les données existantes sur ${ACCOUNT} seront perdues.\nCela ne peut pas être annulé. Vous en êtes sûr",
|
||||
"Longer streaks lead to better rewards.": "Des séquences plus longues mènent à de meilleures récompenses.",
|
||||
"Max number of playlists reached.": "Nombre maximum de playlists atteint.",
|
||||
"Max number of profiles reached.": "Nombre maximum de profils atteint.",
|
||||
"Maximum friend code rewards reached.": "Maximum récompenses de code ami atteint.",
|
||||
"Message is too long.": "Message trop long.",
|
||||
"New tournament result!": "Nouveau résultat du tournoi!",
|
||||
"No servers are available. Please try again soon.": "Aucun serveur disponible. S'il vous plaît réessayez plus tard.",
|
||||
"No slots available. Free a slot and try again.": "Aucun emplacement libre. Libérez-en un et réessayez.",
|
||||
"Profile \"${NAME}\" upgraded successfully.": "Le profil \"${NAME}\" à été mis à jour.",
|
||||
"Profile could not be upgraded.": "Le profil ne peut pas être mis à jour.",
|
||||
"Purchase successful!": "Achat réussi!",
|
||||
|
|
@ -1757,7 +1838,9 @@
|
|||
"Sorry, this code has already been used.": "Désolé, ce code a déjà été utilisé.",
|
||||
"Sorry, this code has expired.": "Désolé, ce code a expiré.",
|
||||
"Sorry, this code only works for new accounts.": "Désolé, ce code fonctionne seulement pour les nouveaux comptes.",
|
||||
"Sorry, this has expired.": "Désolé, il a expiré.",
|
||||
"Still searching for nearby servers; please try again soon.": "Recherche de serveurs à proximité en cours; s'il vous plaît réessayez plus tard.",
|
||||
"Streak: ${NUM} days": "Série : ${NUM} jours",
|
||||
"Temporarily unavailable; please try again later.": "Temporairement indisponible; veuillez réessayer plus tard.",
|
||||
"The tournament ended before you finished.": "Le tournoi s'est terminé avant que vous finissiez.",
|
||||
"This account cannot be unlinked for ${NUM} days.": "Ce compte ne peux pas être dissocié pendant ${NUM} jours.",
|
||||
|
|
@ -1768,19 +1851,28 @@
|
|||
"Tournaments require ${VERSION} or newer": "Les tournois nécessitent ${VERSION} ou plus récent",
|
||||
"Unlink ${ACCOUNT} from this account?\nAll data on ${ACCOUNT} will be reset.\n(except for achievements in some cases)": "Dissocier ${ACCOUNT} de ce compte?\nToutes les données sur ${ACCOUNT} seront réinitialisées.\n(à l'exception des achèvements dans certains cas)",
|
||||
"WARNING: complaints of hacking have been issued against your account.\nAccounts found to be hacking will be banned. Please play fair.": "ATTENTION: des plaintes de piratage/tricherie ont été émises contre votre compte.\nLes comptes piratés sont interdits et bannis. S'il vous plaît, jouez fair play",
|
||||
"Wait reduced!": "Attente réduite!",
|
||||
"Warning: This version of the game is limited to old account data; things may appear missing or out of date.\nPlease upgrade to a newer version of the game to see your latest account data.": "Attention : Cette version du jeu est limitée aux anciennes données de compte ; des éléments pourraient manquer ou être obsolètes.\nVeuillez mettre le jeu à jour dans une version plus récente pour voir vos dernières données de compte.",
|
||||
"Would you like to link your device account to this one?\n\nYour device account is ${ACCOUNT1}\nThis account is ${ACCOUNT2}\n\nThis will allow you to keep your existing progress.\nWarning: this cannot be undone!\n": "Voulez-vous lier votre compte d'appareil à celui-ci?\n\nVotre compte d'appareil est ${ACCOUNT1}\nCe compte est ${ACCOUNT2}\n\nCeci vous permet de garder votre progression.\nAttention: ceci est permanent!",
|
||||
"You already own this!": "Vous possédez déjà ceci!",
|
||||
"You can join in ${COUNT} seconds.": "Vous pouvez rejoindre dans ${COUNT} secondes.",
|
||||
"You don't have enough tickets for this!": "Vous n'avez pas assez de tickets pour ça!",
|
||||
"You don't own that.": "Cela ne vous appartient pas!",
|
||||
"You got ${COUNT} tickets!": "Vous avez reçu ${COUNT} tickets!",
|
||||
"You got ${COUNT} tokens!": "Vous obtenez ${COUNT} jetons!",
|
||||
"You got a ${ITEM}!": "Vous avez reçu un ${ITEM}!",
|
||||
"You got a chest!": "Tu as un coffre!",
|
||||
"You got an achievement reward!": "Vous recevez une récompense de succès!",
|
||||
"You have been promoted to a new league; congratulations!": "Vous avez été promu à une ligue supérieure; félicitations!",
|
||||
"You lost a chest! (All your chest slots were full)": "Vous perdez un coffre! (Tous vos coffres étaient pleins)",
|
||||
"You must update the app to view this.": "Mettez à jour l'app pour voir ceci.",
|
||||
"You must update to a newer version of the app to do this.": "L'app doit être mise à jour pour faire ceci.",
|
||||
"You must update to the newest version of the game to do this.": "Vous devez mettre à jour vers une version plus récente pour faire ça.",
|
||||
"You must wait a few seconds before entering a new code.": "Vous devez attendre quelques secondes avant d'entrer un nouveau code.",
|
||||
"You placed #${RANK} in a tournament!": "Vous avez placé #${RANK} dans un tournoi!",
|
||||
"You ranked #${RANK} in the last tournament. Thanks for playing!": "Vous avez été classé #${RANK} au dernier tournoi. Merci d'avoir participé!",
|
||||
"Your account was rejected. Are you signed in?": "Votre compte a été rejeté. Êtes-vous connecté?",
|
||||
"Your ad views are not registering. Ad options will be limited for a while.": "Vos vues pubs ne sont pas enregistrées. Les options pubs seront limitées pendant un temps.",
|
||||
"Your copy of the game has been modified.\nPlease revert any changes and try again.": "Votre copie du jeu a été modifié.\nRéinitialisez tous changements et réessayez.",
|
||||
"Your friend code was used by ${ACCOUNT}": "Votre code d'ami a été utilisé par ${ACCOUNT}"
|
||||
},
|
||||
|
|
@ -1936,6 +2028,7 @@
|
|||
"twoKillText": "DOUBLE MEURTRE!",
|
||||
"uiScaleText": "Échelle UI",
|
||||
"unavailableText": "indisponible",
|
||||
"unclaimedPrizesText": "Vous avez des prix non réclamés !",
|
||||
"unconfiguredControllerDetectedText": "Contrôleur non-configuré détecté:",
|
||||
"unlockThisInTheStoreText": "Cela doit être débloqué dans le magasin.",
|
||||
"unlockThisProfilesText": "Pour créer plus de ${NUM} profiles, vous avez besoin de:",
|
||||
|
|
@ -1948,10 +2041,13 @@
|
|||
"upgradeText": "Mise à jour",
|
||||
"upgradeToPlayText": "Débloquez \"${PRO}\" dans le magasin pour jouer ceci.",
|
||||
"useDefaultText": "Utilisez le Défaut",
|
||||
"userSystemScriptsCreateText": "Créer un script système d'utilisateur",
|
||||
"userSystemScriptsDeleteText": "Script système de suppression d'utilisateur",
|
||||
"usesExternalControllerText": "Ce jeu utilise un contrôleur externe pour l'input.",
|
||||
"usingItunesText": "Utilisez Music App pour la bande-son...",
|
||||
"usingItunesTurnRepeatAndShuffleOnText": "Vérifiez que 'Lecture Aléatoire'='ACTIF' et 'Reprise'='TOUT' dans iTunes.",
|
||||
"v2AccountLinkingInfoText": "Pour lier des comptes V2, utilisez le bouton 'Gérer compte'.",
|
||||
"v2AccountRequiredText": "Ceci requière un compte V2. Veuillez mettre à jour votre compte et essayez à nouveau.",
|
||||
"validatingBetaText": "Validation de la beta...",
|
||||
"validatingTestBuildText": "Validation de la Version Test...",
|
||||
"viaText": "via",
|
||||
|
|
@ -2021,5 +2117,6 @@
|
|||
},
|
||||
"yesAllowText": "Oui, Autoriser!",
|
||||
"yourBestScoresText": "Vos meilleurs scores",
|
||||
"yourBestTimesText": "Vos meilleurs temps"
|
||||
"yourBestTimesText": "Vos meilleurs temps",
|
||||
"yourPrizeText": "Votre prix:"
|
||||
}
|
||||
138
dist/ba_data/data/languages/german.json
vendored
138
dist/ba_data/data/languages/german.json
vendored
|
|
@ -1,13 +1,15 @@
|
|||
{
|
||||
"accountSettingsWindow": {
|
||||
"accountNameRules": "Der Konto Name darf kein Emoji oder andere spezielle Zeichen enthalten",
|
||||
"accountNameRules": "Der Konto Name kann keine Emojis oder andere spezielle Zeichen enthalten",
|
||||
"accountProfileText": "Benutzerprofil",
|
||||
"accountsText": "Konten",
|
||||
"accountsText": "Accounts",
|
||||
"achievementProgressText": "Erfolge: ${COUNT} von ${TOTAL}",
|
||||
"campaignProgressText": "Kampagnen Fortschritt [Schwer]: ${PROGRESS}",
|
||||
"changeOncePerSeason": "Du kannst dies nur einmal pro Saison ändern.",
|
||||
"changeOncePerSeasonError": "Du musst warten bis du das wieder in der nächsten Saison ändern kannst. (${NUM} Tage)",
|
||||
"changeOncePerSeasonError": "Du musst warten auf die nächste Saison warten um dies zu ändern. (${NUM} Tage)",
|
||||
"createAnAccountText": "Konto erstellen",
|
||||
"customName": "Benutzerdefinierter Name",
|
||||
"deleteAccountText": "Account löschen",
|
||||
"googlePlayGamesAccountSwitchText": "Wenn Sie ein anderes Google-Konto verwenden möchten,\nVerwenden Sie die Google Play Games-App, um zu wechseln.",
|
||||
"linkAccountsEnterCodeText": "Code eingeben",
|
||||
"linkAccountsGenerateCodeText": "Code generieren",
|
||||
|
|
@ -26,14 +28,16 @@
|
|||
"setAccountNameDesc": "Wählen Sie den Namen aus, der für Ihr Konto angezeigt werden soll.\nSie können den Namen von einem Ihrer verlinkten\nKonten benutzen oder erstellen Sie einen einzigartigen benutzerdefinierten Name.",
|
||||
"signInInfoText": "Melde dich an, um deinen Fortschritt in der Cloud zu speichern,\nTickets zu verdienen und an Turnieren teilzunehmen.",
|
||||
"signInText": "Anmelden",
|
||||
"signInWithAnEmailAddressText": "Gib eine E-Mail Adresse an.",
|
||||
"signInWithDeviceInfoText": "(ein automatisches Konto, das du nur auf diesem Gerät benutzen kannst)",
|
||||
"signInWithDeviceText": "Mit Gerät-Konto einloggen",
|
||||
"signInWithGameCircleText": "Mit Game Circle einloggen",
|
||||
"signInWithGooglePlayText": "Mit Google Play anmelden",
|
||||
"signInWithTestAccountInfoText": "(veraltete Kontoart, benutze Geräte-Kontos)",
|
||||
"signInWithTestAccountText": "Mit Testkonto einloggen",
|
||||
"signInWithText": "Gib es an mit${SERVICE}",
|
||||
"signInWithV2InfoText": "(Ein Account der auf allen Plattformen funktioniert)",
|
||||
"signInWithV2Text": "Einloggen mit einem BombSquad Account",
|
||||
"signInWithV2Text": "Einloggen mit einem ${APP_NAME} Account",
|
||||
"signOutText": "Abmelden",
|
||||
"signingInText": "Anmelden...",
|
||||
"signingOutText": "Abmelden...",
|
||||
|
|
@ -346,6 +350,8 @@
|
|||
"allowText": "Erlauben",
|
||||
"alreadySignedInText": "Dein Account wird schon von einem anderen Gerät verwendet;\nbitte wechsle den Account oder schließe das Spiel auf\ndeinem anderen Gerät und versuche es nochmal.",
|
||||
"apiVersionErrorText": "Das Modul ${NAME} kann nicht geladen werden. Es benutzt API-Version ${VERSION_USED}, aber wir brauchen ${VERSION_REQUIRED}.",
|
||||
"applyText": "Anwenden",
|
||||
"areYouSureText": "Bist du dir sicher?",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(\"Auto\" erlaubt das nur, wenn Kopfhörer angeschlossen sind)",
|
||||
"headRelativeVRAudioText": "Kopf-Orientiertes VR Audio",
|
||||
|
|
@ -370,14 +376,24 @@
|
|||
"boostText": "Boost",
|
||||
"bsRemoteConfigureInAppText": "${REMOTE_APP_NAME} ist in der App konfiguriert.",
|
||||
"buttonText": "Taste",
|
||||
"canWeDebugText": "Möchtest du, dass BombSquad automatisch Fehler, Abstürze\nund Benutzeraktivitäten an den Entwickler sendet?\n\nDiese Daten enthalten keinerlei persönliche Informationen\nund helfen, das Spiel reibungslos und fehlerfrei zu erhalten.",
|
||||
"canWeDebugText": "Möchtest du, dass ${APP_NAME} automatisch Fehler, Abstürze\nund Benutzeraktivitäten an den Entwickler sendet?\n\nDiese Daten enthalten keinerlei persönliche Informationen\nund helfen, das Spiel reibungslos und fehlerfrei zu erhalten.",
|
||||
"cancelText": "Abbrechen",
|
||||
"cantConfigureDeviceText": "Entschuldigung, ${DEVICE} ist nicht konfigurierbar.",
|
||||
"challengeEndedText": "Diese Herausforderung ist beendet.",
|
||||
"chatMuteText": "Chat stummschalten",
|
||||
"chatMutedText": "Chat stumm",
|
||||
"chatUnMuteText": "Chat aktivieren",
|
||||
"chests": {
|
||||
"prizeOddsText": "Preis Chancen",
|
||||
"reduceWaitText": "Wartezeit verkürzen",
|
||||
"slotDescriptionText": "Hier könnte eine Truhe sein.\n\nVerdiene Truhen, indem du Kampagnenlevels spielst,\nin Turnieren gewinnst und durch das Erreichen von \nErfolgen.",
|
||||
"slotText": "Truhen Slot ${NUM}",
|
||||
"slotsFullWarningText": "WARNUNG: Alle Ihre Truhenplätze sind voll.\nAlle Truhen, die du in diesem Spiel verdienst, sind verloren.",
|
||||
"unlocksInText": "Freigeschaltet In"
|
||||
},
|
||||
"choosingPlayerText": "<wähle Spieler aus>",
|
||||
"claimText": "Beanspruchen",
|
||||
"codesExplainText": "Die Codes werden verwaltet von dem Entwickler,\nDieser diagnostiziert und korrigiert Kontenprobleme.",
|
||||
"completeThisLevelToProceedText": "Du musst dieses Level\nabschließen um fortzufahren!",
|
||||
"completionBonusText": "Bewältigungsbonus",
|
||||
"configControllersWindow": {
|
||||
|
|
@ -467,6 +483,7 @@
|
|||
"titleText": "Touchscreen einstellen",
|
||||
"touchControlsScaleText": "Touch Steuerung Skalierung"
|
||||
},
|
||||
"configureDeviceInSystemSettingsText": "${DEVICE} kann in der System Settings App eingestellt werden.",
|
||||
"configureItNowText": "Konfiguriere es jetzt?",
|
||||
"configureText": "Konfigurieren",
|
||||
"connectMobileDevicesWindow": {
|
||||
|
|
@ -580,6 +597,7 @@
|
|||
"demoText": "Demo",
|
||||
"denyText": "Verweigern",
|
||||
"deprecatedText": "Veraltet",
|
||||
"descriptionText": "Beschreibung",
|
||||
"desktopResText": "Desktop Auflösung",
|
||||
"deviceAccountUpgradeText": "Achtung:\nDu bist mit einem Gerät-Konto angemeldet (${NAME}).\nGerät-Konten werden in einem kommendem Update entfernt.\nVerbessere zu einem V2 Konto, wenn du deinen Fortschritt behalten willst.",
|
||||
"difficultyEasyText": "Leicht",
|
||||
|
|
@ -591,7 +609,9 @@
|
|||
"disableXInputDescriptionText": "Erlaubt mehr als 4 Controller aber kann schlechter funktionieren.",
|
||||
"disableXInputText": "XInput deaktivieren",
|
||||
"disabledText": "Deaktiviert",
|
||||
"discardText": "Verwerfen",
|
||||
"discordFriendsText": "Suchst du neue Leute mit denen du spielen kannst? Trete unserem Discord bei und finde neue Freunde!",
|
||||
"discordJoinText": "Treten Sie Discord bei",
|
||||
"doneText": "Fertig",
|
||||
"drawText": "Unentschieden",
|
||||
"duplicateText": "dublizieren",
|
||||
|
|
@ -678,6 +698,8 @@
|
|||
"errorText": "Fehler",
|
||||
"errorUnknownText": "unbekannter Fehler",
|
||||
"exitGameText": "${APP_NAME} verlassen?",
|
||||
"expiredAgoText": "Seit ${T} ausgelaufen",
|
||||
"expiresInText": "Läuft aus in ${T}",
|
||||
"exportSuccessText": "'${NAME}' exportiert.",
|
||||
"externalStorageText": "externer Datenspeicher",
|
||||
"failText": "Fehlgeschlagen",
|
||||
|
|
@ -715,6 +737,7 @@
|
|||
"gameListText": "Spieleliste",
|
||||
"newText": "Neue\nPlaylist",
|
||||
"pointsToWinText": "Punkte um zu Gewinnen",
|
||||
"seriesLengthText": "Serienlänge",
|
||||
"showTutorialText": "Tutorial anzeigen",
|
||||
"shuffleGameOrderText": "Zufällige Spielreihenfolge",
|
||||
"titleText": "${TYPE}-Playlists bearbeiten"
|
||||
|
|
@ -743,6 +766,7 @@
|
|||
"copyCodeConfirmText": "Veranstalten Sie eine private Party",
|
||||
"copyCodeText": "Code kopieren",
|
||||
"dedicatedServerInfoText": "Das beste Ergebnis wird mit einem dedizierten Server erreicht. Auf bombsquadgame.com/server steht wie es geht.",
|
||||
"descriptionShortText": "Nutz das Party Fenster um eine Party zu kreieren.",
|
||||
"disconnectClientsText": "Dadurch werden die ${COUNT} Spieler in Ihrer\nParty getrennt. Sind Sie sicher ?",
|
||||
"earnTicketsForRecommendingAmountText": "Freunde bekommen ${COUNT} Tickets, wenn sie das Spiel ausprobieren.\n(Du bekommst ${YOU_COUNT} für jeden, der es tut.)",
|
||||
"earnTicketsForRecommendingText": "Empfehle das Spiel an Freunde \nund ihr bekommt beide Tickets.",
|
||||
|
|
@ -756,10 +780,10 @@
|
|||
"friendPromoCodeAwardText": "Du bekommst ${COUNT} Tickets bei jeder Verwendung.",
|
||||
"friendPromoCodeExpireText": "Der Code wird in ${EXPIRE_HOURS} Stunden ungültig und funktioniert nur für neue Spieler.",
|
||||
"friendPromoCodeInfoText": "Kann für ${COUNT} Tickets eingelöst werden.\n\nGehe zu \"Einstellungen -> Erweitert -> Gutscheincode eingeben\" im Spiel um den Code einzulösen.\nBesuche bombsquadgame.com um das Spiel für alle unterstützten Platformen herunterzuladen.\nDieser Code wird in ${EXPIRE_HOURS} Stunden ungültig und kann nur von neuen Spielern eingelöst werden.",
|
||||
"friendPromoCodeInstructionsText": "Um ihn einzulösen, öffne ${APP_NAME} und gehe zu \"Einstellungen->Erweitert->Gutscheincode eingeben\".\nAuf bombsquadgame.com findest du Links zum Download für alle unterstützten Plattformen.",
|
||||
"friendPromoCodeInstructionsText": "Um ihn einzulösen,öffne ${APP_NAME} und gehe zu \"Einstellungen->erweitert-Information senden\".Auf bombsquad.com findest du Links zum Download für alle unterstützen\n Plattformen.",
|
||||
"friendPromoCodeRedeemLongText": "Er kann für ${COUNT} kostenlose Tickets von bis zu ${MAX_USES} Personen eingelöst werden.",
|
||||
"friendPromoCodeRedeemShortText": "Es kann im Spiel für ${COUNT} eingelöst werden.",
|
||||
"friendPromoCodeWhereToEnterText": "(in \"Einstellungen->Erweitert->Gutscheincode eingeben\")",
|
||||
"friendPromoCodeWhereToEnterText": "(In \"Einstellungen->erweitert->Informationen senden\")",
|
||||
"getFriendInviteCodeText": "Bekomme einen Einladungscode für Freunde",
|
||||
"googlePlayDescriptionText": "Lade Google Play Freunde zu deiner Party ein:",
|
||||
"googlePlayInviteText": "Einladen",
|
||||
|
|
@ -791,6 +815,7 @@
|
|||
"manualYourLocalAddressText": "Deine Lokale Adresse",
|
||||
"nearbyText": "In der Nähe",
|
||||
"noConnectionText": "<keine Verbindung>",
|
||||
"noPartiesAddedText": "Keine Partys ergänzt",
|
||||
"otherVersionsText": "(andere Versionen)",
|
||||
"partyCodeText": "Party Code",
|
||||
"partyInviteAcceptText": "Akzeptieren",
|
||||
|
|
@ -863,6 +888,12 @@
|
|||
"youHaveShortText": "Du hast ${COUNT}",
|
||||
"youHaveText": "Du hast ${COUNT} Tickets"
|
||||
},
|
||||
"goldPass": {
|
||||
"desc1InfTokensText": "Unendliche Token.",
|
||||
"desc2NoAdsText": "Keine Werbung.",
|
||||
"desc3ForeverText": "Dauerhaft.",
|
||||
"goldPassText": "Gold Pass"
|
||||
},
|
||||
"googleMultiplayerDiscontinuedText": "Sorry, Googles Multiplayerservice ist nicht länger verfügbar.\nIch arbeite so schnell wie möglich an einem Ersatz.\nBis dahin, versuche bitte eine andere Verbindungsmethode.\n-Eric",
|
||||
"googlePlayPurchasesNotAvailableText": "Google Play-Käufe sind nicht verfügbar.\nMöglicherweise müssen Sie Ihre Store-App aktualisieren.",
|
||||
"googlePlayServicesNotAvailableText": "Google Play-Dienste sind nicht verfügbar.\nEinige App-Funktionen sind möglicherweise deaktiviert.",
|
||||
|
|
@ -959,6 +990,7 @@
|
|||
"importText": "Importieren",
|
||||
"importingText": "Wird importiert...",
|
||||
"inGameClippedNameText": "Im Spiel angezeigter Name wird \n\"${NAME}\"",
|
||||
"inboxText": "Nachrichten",
|
||||
"installDiskSpaceErrorText": "ERROR: Installation wurde nicht abgeschlossen.\nEs ist nicht genug Speicherplatz verfügbar.\nVersuche es erneut, nachdem genügend Speicher freigegeben wurde.",
|
||||
"internal": {
|
||||
"arrowsToExitListText": "drücke ${LEFT} oder ${RIGHT}, um die Liste zu verlassen",
|
||||
|
|
@ -1015,12 +1047,14 @@
|
|||
"touchScreenJoinWarningText": "Du bist mit dem Touchscreen beigetreten.\nWenn das ein Versehen war, drücke 'Menü->Spiel Beenden' damit.",
|
||||
"touchScreenText": "TouchScreen",
|
||||
"trialText": "Testversion",
|
||||
"unableToCompleteTryAgainText": "Diese Aktion ist gerade nicht möglich. \nBitte versuche es später erneut",
|
||||
"unableToResolveHostText": "Fehler: Verbindung zum Host konnte nicht aufgelöst werden.",
|
||||
"unavailableNoConnectionText": "Zurzeit nicht verfügbar. (Keine Internetverbindung?)",
|
||||
"vrOrientationResetCardboardText": "Benutze dies,um die VR orientierung zurückzusetzen.\nUm das Spiel spielen zu können, brauchst du einen externen controller.",
|
||||
"vrOrientationResetText": "Kalibriere VR Orientierung.",
|
||||
"willTimeOutText": "(wird unterbrochen, wenn keine Eingabe)"
|
||||
},
|
||||
"inventoryText": "Inventar",
|
||||
"jumpBoldText": "SPRING",
|
||||
"jumpText": "Spring",
|
||||
"keepText": "Halten",
|
||||
|
|
@ -1067,8 +1101,11 @@
|
|||
"seasonEndsMinutesText": "Die Saison endet in ${NUMBER} Minuten.",
|
||||
"seasonText": "Saison ${NUMBER}",
|
||||
"tournamentLeagueText": "Du musst die ${NAME} Liga erreichen um dieses Turnier zu spielen.",
|
||||
"trophyCountsResetText": "Die Trophäenzahl wird nächste Season zurückgesetzt."
|
||||
"trophyCountsResetText": "Die Trophäenzahl wird nächste Season zurückgesetzt.",
|
||||
"upToDateBonusDescriptionText": "Spiele mit den neuesten Bombsquad Version \nerhalten hier einen ${PERCENT}%igen Bonus.",
|
||||
"upToDateBonusText": "Aktuell-Bonus"
|
||||
},
|
||||
"learnMoreText": "Erfahre mehr",
|
||||
"levelBestScoresText": "Bestes Ergebnis bei ${LEVEL}",
|
||||
"levelBestTimesText": "Beste Zeiten bei ${LEVEL}",
|
||||
"levelFastestTimesText": "Schnellste Zeit auf ${LEVEL}",
|
||||
|
|
@ -1115,6 +1152,8 @@
|
|||
"modeArcadeText": "Arcade-Modus",
|
||||
"modeClassicText": "Klassischer Modus",
|
||||
"modeDemoText": "Demo Modus",
|
||||
"moreSoonText": "Mehr ist in Arbeit...",
|
||||
"mostDestroyedPlayerText": "Meist zerstörter Spieler",
|
||||
"mostValuablePlayerText": "Wertvollster Spieler",
|
||||
"mostViolatedPlayerText": "Meist getöteter Spieler",
|
||||
"mostViolentPlayerText": "Brutalster Spieler",
|
||||
|
|
@ -1131,6 +1170,7 @@
|
|||
"nameSuicideText": "${NAME} begeht Selbstmord.",
|
||||
"nameText": "Name",
|
||||
"nativeText": "Native Einstellung",
|
||||
"newExclaimText": "Neu!",
|
||||
"newPersonalBestText": "Neuer persönlicher Rekord!",
|
||||
"newTestBuildAvailableText": "Ein neuerer Test-Build ist erhältlich (${VERSION} Build ${BUILD}).\nZu holen auf ${ADDRESS}",
|
||||
"newText": "Neu",
|
||||
|
|
@ -1142,6 +1182,8 @@
|
|||
"noExternalStorageErrorText": "Kein externer Datenspeicher auf dem Gerät gefunden",
|
||||
"noGameCircleText": "Fehler: nicht in GameCircle eingeloggt",
|
||||
"noJoinCoopMidwayText": "Koop-Spiele können nicht während des Spiels betreten werden.",
|
||||
"noMessagesText": "Keine Nachrichten.",
|
||||
"noPluginsInstalledText": "Keine Plugins installiert",
|
||||
"noProfilesErrorText": "Du hast kein Spielerprofil, deshalb ist dein Name \"${NAME}\".\nGehe zu Einstellungen->Spielerprofile um ein Profil anzulegen.",
|
||||
"noScoresYetText": "Noch kein Punktestand.",
|
||||
"noServersFoundText": "Keine Server gefunden.",
|
||||
|
|
@ -1150,6 +1192,7 @@
|
|||
"noValidMapsErrorText": "Keine gültigen Karten für diesen Spieltyp gefunden.",
|
||||
"notEnoughPlayersRemainingText": "Nicht genug Spieler übrig; Spiel verlassen oder neues Spiel starten.",
|
||||
"notEnoughPlayersText": "Du benötigst mindestens ${COUNT} Spieler, um dieses Spiel zu starten.",
|
||||
"notEnoughTicketsText": "Nicht genügend Tickets!",
|
||||
"notNowText": "Nicht jetzt",
|
||||
"notSignedInErrorText": "Du musst dich hierfür einloggen.",
|
||||
"notSignedInGooglePlayErrorText": "Hierfür musst du dich mit Google Play anmelden",
|
||||
|
|
@ -1162,6 +1205,9 @@
|
|||
"onText": "An",
|
||||
"oneMomentText": "Einen Moment...",
|
||||
"onslaughtRespawnText": "${PLAYER} steigt in Welle ${WAVE} wieder ein",
|
||||
"openMeText": "Öffne mich!",
|
||||
"openNowText": "Jetzt öffnen",
|
||||
"openText": "Öffnen",
|
||||
"orText": "${A} oder ${B}",
|
||||
"otherText": "Sonstiges...",
|
||||
"outOfText": "(#${RANK} von ${ALL})",
|
||||
|
|
@ -1257,6 +1303,8 @@
|
|||
"punchText": "Schlagen",
|
||||
"purchaseForText": "Für ${PRICE} kaufen",
|
||||
"purchaseGameText": "Spiel kaufen",
|
||||
"purchaseNeverAvailableText": "Sorry, Einkäufe sind auf dieser Plattform nicht möglich.\nLog dich in einen anderen Account einer anderen Plattform ein, und versuche dies von dort aus erneut.",
|
||||
"purchaseNotAvailableText": "Dieser Einkauf ist nicht möglich.",
|
||||
"purchasingText": "Bezahlt...",
|
||||
"quitGameText": "${APP_NAME} beenden?",
|
||||
"quittingIn5SecondsText": "Verlasse das Spiel in 5 Sekunden...",
|
||||
|
|
@ -1299,6 +1347,7 @@
|
|||
"version_mismatch": "Versionskonflikt.\nVersuch es mit den aktuellen Versionen von\nBombSquad und BombSquad Remote noch einmal."
|
||||
},
|
||||
"removeInGameAdsText": "Schalte \"${PRO}\" im Store frei, um Werbung zu entfernen.",
|
||||
"removeInGameAdsTokenPurchaseText": "FÜR LIMITIERTE ZEIT: kaufe IRGENDEIN Token Pack und die Werbungen werden entfernt.",
|
||||
"renameText": "Name ändern",
|
||||
"replayEndText": "Wiederholung beenden",
|
||||
"replayNameDefaultText": "Letztes Spiel ansehen",
|
||||
|
|
@ -1332,6 +1381,7 @@
|
|||
},
|
||||
"scoreWasText": "(war ${COUNT})",
|
||||
"selectText": "Auswählen",
|
||||
"sendInfoDescriptionText": "Senden Sie Konto- und App-informationen zum Entwickler.\nBitte ergänzen Sie Ihren Namen und den Grund des Sendens",
|
||||
"seriesWinLine1PlayerText": "GEWINNT DIE",
|
||||
"seriesWinLine1Scale": 0.65,
|
||||
"seriesWinLine1TeamText": "GEWINNT DIE",
|
||||
|
|
@ -1353,24 +1403,32 @@
|
|||
},
|
||||
"settingsWindowAdvanced": {
|
||||
"alwaysUseInternalKeyboardDescriptionText": "(Eine einfache, Controller-freundliche Bildschirmtastatur für Texte)",
|
||||
"alwaysUseInternalKeyboardText": "Immer interne Tastatur benutzen",
|
||||
"alwaysUseInternalKeyboardText": "Immer die interne Tastatur benutzen",
|
||||
"benchmarksText": "Benchmarks & Stress-Tests",
|
||||
"devToolsText": "Entwicklungswerkzeuge",
|
||||
"disableCameraGyroscopeMotionText": "Deaktivieren Sie die Kamera-Gyroskop-Bewegung",
|
||||
"disableCameraShakeText": "Deaktivieren Sie Camera Shake",
|
||||
"disableCameraShakeText": "Deaktivieren Sie Kamera-Bewegungen.",
|
||||
"disableThisNotice": "(Du kannst diese Notiz in den erweiterten Einstellungen ändern.)",
|
||||
"enablePackageModsDescriptionText": "(Aktiviert installierte Mods aber deaktiviert den Mehrspielermodus)",
|
||||
"enablePackageModsText": "Local Package Mods aktivieren",
|
||||
"enterPromoCodeText": "Gutscheincode eingeben",
|
||||
"forTestingText": "Wichtig: Diese Werte sind nur für Tests und werden später wieder zurückgesetzt.",
|
||||
"helpTranslateText": "${APP_NAME}'s Übersetzungen sind der Community zu\nverdanken. Wenn du eine Übersetzung hinzufügen oder \nverbessern willst, folge dem Link unten. Danke im Voraus!",
|
||||
"insecureConnectionsDescriptionText": "nicht empfohlen, kann dir jedoch die Online Play Funktion\nin eingeschränkten Ländern ermöglichen",
|
||||
"insecureConnectionsText": "Instabile Verbindungen verwenden",
|
||||
"kickIdlePlayersText": "Inaktive Spieler verbannen",
|
||||
"kidFriendlyModeText": "Kinderfreundlicher Modus (Reduzierte Gewalt, etc.)",
|
||||
"languageText": "Sprache",
|
||||
"moddingGuideText": "Modding Anleitung",
|
||||
"moddingToolsText": "Modding Werkzeuge",
|
||||
"mustRestartText": "Das Spiel muss neugestartet werden um die Änderungen wirksam zu machen.",
|
||||
"netTestingText": "Netzwerk Tests",
|
||||
"resetText": "Zurücksetzen",
|
||||
"sendInfoText": "Information senden",
|
||||
"showBombTrajectoriesText": "Zeige die Bomben-Flugbahn",
|
||||
"showDemosWhenIdleText": "Zeigen sie Abstimmungen, when sie inaktiv sind",
|
||||
"showDeprecatedLoginTypesText": "Zeigen sie Login-Möglichkeiten",
|
||||
"showDevConsoleButtonText": "Zeigen sie den Konsolen-Knopf",
|
||||
"showInGamePingText": "Zeige Ping im Spiel",
|
||||
"showPlayerNamesText": "Zeige Spielernamen",
|
||||
"showUserModsText": "Zeige Mods-Ordner",
|
||||
|
|
@ -1379,8 +1437,8 @@
|
|||
"translationFetchErrorText": "Übersetzungsstatus nicht verfügbar....",
|
||||
"translationFetchingStatusText": "prüfe Übersetzungsstatus...",
|
||||
"translationInformMe": "Informiere mich, wenn meine Sprache Updates benötigt.",
|
||||
"translationNoUpdateNeededText": "Die ausgewählte Sprache ist aktuell; Juhuuu!",
|
||||
"translationUpdateNeededText": "** die ausgewählte Sprache ist nicht aktuell!! **",
|
||||
"translationNoUpdateNeededText": "Die aktuelle Sprache ist auf dem neuesten Stand; Juhuuu!",
|
||||
"translationUpdateNeededText": "** Die ausgewählte Sprache benötigt Updates!! **",
|
||||
"vrTestingText": "VR Tests"
|
||||
},
|
||||
"shareText": "Teilen",
|
||||
|
|
@ -1418,6 +1476,7 @@
|
|||
},
|
||||
"spaceKeyText": "Leer",
|
||||
"statsText": "Statistiken",
|
||||
"stopRemindingMeText": "Nicht mehr erinnern",
|
||||
"storagePermissionAccessText": "Dies benötigt Zugriff auf deinen Speicher",
|
||||
"store": {
|
||||
"alreadyOwnText": "Du besitzt bereits ${NAME}!",
|
||||
|
|
@ -1469,6 +1528,8 @@
|
|||
"storeText": "Laden",
|
||||
"submitText": "Bestätigen",
|
||||
"submittingPromoCodeText": "Code wird übertragen...",
|
||||
"successText": "Erfolg!",
|
||||
"supportEmailText": "Wenn du irgendwelche Probleme mit der App hast, \nKontaktiere bitte den Entwickler ${EMAIL}",
|
||||
"teamNamesColorText": "Team Namen/Farben...",
|
||||
"teamsText": "Teams",
|
||||
"telnetAccessGrantedText": "Telnet Zugang aktiviert.",
|
||||
|
|
@ -1479,6 +1540,7 @@
|
|||
"testBuildValidatedText": "Testversion ist gültig; Viel Spaß!",
|
||||
"thankYouText": "Vielen Dank für deine Hilfe und viel Spaß!!",
|
||||
"threeKillText": "DREIFACH KILL!!",
|
||||
"ticketsDescriptionText": "Tickets können zum Freischalten von Charakteren\nKarten, Minispiele und mehr im Shop freizuschalten.\n\nTickets können in Truhen gefunden werden, die durch\nKampagnen, Turnieren und Erfolge gewonnen werden.",
|
||||
"timeBonusText": "Zeitbonus",
|
||||
"timeElapsedText": "Vergangene Zeit",
|
||||
"timeExpiredText": "Zeit abgelaufen!",
|
||||
|
|
@ -1489,10 +1551,24 @@
|
|||
"tipText": "Tipp",
|
||||
"titleText": "BombSquad",
|
||||
"titleVRText": "BombSquad VR",
|
||||
"tokens": {
|
||||
"getTokensText": "Hole Token",
|
||||
"notEnoughTokensText": "Nicht genug Token!",
|
||||
"numTokensText": "${COUNT} Token",
|
||||
"openNowDescriptionText": "Du hast genug Münzen\num jetzt zu öffnen - du brauchst nicht \nzu warten.",
|
||||
"shinyNewCurrencyText": "Bombsquad's neue glänzende Währung.",
|
||||
"tokenPack1Text": "Kleines Token Paket",
|
||||
"tokenPack2Text": "Mittleres Token Paket",
|
||||
"tokenPack3Text": "Großes Token Paket",
|
||||
"tokenPack4Text": "Riesen Token Paket",
|
||||
"tokensDescriptionText": "Token werden verwendet, um die Freischaltung von Truhen zu beschleunigen\nund für andere Spiel- und Kontofunktionen.\n\nDu kannst Token im Spiel gewinnen oder sie\nin Paketen kaufen. Oder kaufe einen Gold Pass\nfür unendlich viele.",
|
||||
"youHaveGoldPassText": "Du hast den Gold Pass.\nAlle Token-Einkäufe sind kostenlos.\nViel Spaß!"
|
||||
},
|
||||
"topFriendsText": "Top Freunde",
|
||||
"tournamentCheckingStateText": "Überprüfe Turnier Status; Bitte warten...",
|
||||
"tournamentEndedText": "Dieses Turnier ist zu Ende. Ein Neues startet bald.",
|
||||
"tournamentEntryText": "Turnier beitreten",
|
||||
"tournamentFinalStandingsText": "Endstand",
|
||||
"tournamentResultsRecentText": "Neueste Turnierergebnisse",
|
||||
"tournamentStandingsText": "Tournier Tabelle",
|
||||
"tournamentText": "Turnier",
|
||||
|
|
@ -1566,6 +1642,18 @@
|
|||
"Uber Onslaught": "Unmöglich heftiger Angriff",
|
||||
"Uber Runaround": "Unmöglich an der Nase herumführen"
|
||||
},
|
||||
"displayItemNames": {
|
||||
"${C} Tickets": "${C} Tickets",
|
||||
"${C} Tokens": "${C} Tokens",
|
||||
"Chest": "Truhe",
|
||||
"L1 Chest": "L1 Truhe",
|
||||
"L2 Chest": "L2 Truhe",
|
||||
"L3 Chest": "L3 Truhe",
|
||||
"L4 Chest": "L4 Truhe",
|
||||
"L5 Chest": "L5 Truhe",
|
||||
"L6 Chest": "L6 Truhe",
|
||||
"Unknown Chest": "Unbekannte Truhe"
|
||||
},
|
||||
"gameDescriptions": {
|
||||
"Be the chosen one for a length of time to win.\nKill the chosen one to become it.": "Sei eine Zeit lang der Auserwählte, um zu gewinnen.\nTöte ihn, um selbst zum Auserwählten zu werden.",
|
||||
"Bomb as many targets as you can.": "Zerbombe so viele Ziele wie Du kannst.",
|
||||
|
|
@ -1671,6 +1759,7 @@
|
|||
"Korean": "Koreanisch",
|
||||
"Malay": "Malaiisch",
|
||||
"Persian": "Persisch",
|
||||
"PirateSpeak": "Piratensprache",
|
||||
"Polish": "Polnisch",
|
||||
"Portuguese": "Portugiesisch",
|
||||
"Romanian": "Rumänisch",
|
||||
|
|
@ -1745,6 +1834,7 @@
|
|||
"Cheating detected; scores and prizes suspended for ${COUNT} days.": "Cheating erkannt; deine Punkte und Preise sind für ${COUNT} Tage gesperrt.",
|
||||
"Could not establish a secure connection.": "Konnte keine sichere Verbindung herstellen.",
|
||||
"Daily maximum reached.": "Tageslimit erreicht.",
|
||||
"Daily sign-in reward": "Tägliche Login Belohnung",
|
||||
"Entering tournament...": "Trete Turnier bei...",
|
||||
"Invalid code.": "Ungültiger Code",
|
||||
"Invalid payment; purchase canceled.": "Ungültige Zahlung; Einkauf abgebrochen.",
|
||||
|
|
@ -1754,11 +1844,14 @@
|
|||
"Item unlocked!": "Gegenstand freigeschaltet!",
|
||||
"LINKING DENIED. ${ACCOUNT} contains\nsignificant data that would ALL BE LOST.\nYou can link in the opposite order if you'd like\n(and lose THIS account's data instead)": "VERLINKUNG VERWEIGERT. ${ACCOUNT} beinhaltet\nwichtige Daten, die ALLE VERLOREN wären.\nDu kannst andersherum verlinken, wenn du willst\n(Du würdest stattdessen DIESE Account-Daten verlieren)",
|
||||
"Link account ${ACCOUNT} to this account?\nAll existing data on ${ACCOUNT} will be lost.\nThis can not be undone. Are you sure?": "Den Account ${ACCOUNT} mit diesem Account verknüpfen?\nJeglicher Fortschritt des Accounts ${ACCOUNT} wird verloren gehen!\nDies kann nicht rückgängig gemacht werden! Fortfahren?",
|
||||
"Longer streaks lead to better rewards.": "Je länger die Streaks, desto besser die Belohnung.",
|
||||
"Max number of playlists reached.": "Max Anzahl von Wiedergabelisten erreicht.",
|
||||
"Max number of profiles reached.": "Max Anzahl der Profile erreicht.",
|
||||
"Maximum friend code rewards reached.": "Maximale Anzahl an Einladungsbelohnungen erreicht.",
|
||||
"Message is too long.": "Nachricht ist zu lang.",
|
||||
"New tournament result!": "Neues Turnier Ergebnis!",
|
||||
"No servers are available. Please try again soon.": "Keine Server verfügbar. Schau nachher noch einmal vorbei.",
|
||||
"No slots available. Free a slot and try again.": "Keine Slots mehr verfügbar. Mach einen Slot frei und versuche es noch einmal",
|
||||
"Profile \"${NAME}\" upgraded successfully.": "Profil \"${NAME}\" erfolgreich aktualisiert.",
|
||||
"Profile could not be upgraded.": "Profil konnte nicht aktualisiert werden.",
|
||||
"Purchase successful!": "Einkauf erfolgreich!",
|
||||
|
|
@ -1768,7 +1861,9 @@
|
|||
"Sorry, this code has already been used.": "Tut uns leid, dieser Code wurde bereits eingelöst.",
|
||||
"Sorry, this code has expired.": "Tut uns leid, dieser Code ist nicht mehr gültig.",
|
||||
"Sorry, this code only works for new accounts.": "Tut uns leid, dieser Code kann nur mit einem neuen Account eingelöst werden.",
|
||||
"Sorry, this has expired.": "Sorry, das ist abgelaufen.",
|
||||
"Still searching for nearby servers; please try again soon.": "Suche immernoch nach Servern in der Nähe; schau nachher noch einmal vorbei.",
|
||||
"Streak: ${NUM} days": "Streak: ${NUM} Tage",
|
||||
"Temporarily unavailable; please try again later.": "Vorübergehend nicht verfügbar. Bitte versuche es später noch einmal.",
|
||||
"The tournament ended before you finished.": "Das Turnier endete bevor du ins Ziel kamst.",
|
||||
"This account cannot be unlinked for ${NUM} days.": "Dieser Account kann nicht für ${NUM} Tage entknüpft werden.",
|
||||
|
|
@ -1779,19 +1874,28 @@
|
|||
"Tournaments require ${VERSION} or newer": "Turniere benötigen Version ${VERSION} oder neuer",
|
||||
"Unlink ${ACCOUNT} from this account?\nAll data on ${ACCOUNT} will be reset.\n(except for achievements in some cases)": "Den Account ${ACCOUNT} von diesem Account entknüpfen?\nJeglicher Fortschritt auf ${ACCOUNT} wird zurückgesetzt.\n(außer Erfolge in manchen Fällen)",
|
||||
"WARNING: complaints of hacking have been issued against your account.\nAccounts found to be hacking will be banned. Please play fair.": "Beschwerden von Hacking sind für deinen Account aufgetreten.\nAccount, welche des Hackings verdächtigt werden, werden gesperrt. Bitte spiele gerecht.",
|
||||
"Wait reduced!": "Wartezeit verkürzt!",
|
||||
"Warning: This version of the game is limited to old account data; things may appear missing or out of date.\nPlease upgrade to a newer version of the game to see your latest account data.": "Warnung: Diese Version des Spiels verwendet veraltete Kontodaten. Einige Inhalte könnten fehlen oder nicht aktuell sein.\nBitte aktualisiere auf eine neuere Version, um deine aktuellen Kontodaten anzuzeigen.",
|
||||
"Would you like to link your device account to this one?\n\nYour device account is ${ACCOUNT1}\nThis account is ${ACCOUNT2}\n\nThis will allow you to keep your existing progress.\nWarning: this cannot be undone!\n": "Willst du deinen Gerät-Account mit diesem Account verlinken?\n\nDein Gerät-Account: ${ACCOUNT1}\nDieser Account: ${ACCOUNT2}\n\nDies wird dir ermöglichen, deinen Fortschritt zu behalten.\nAchtung: Du kannst es nicht rückgängig machen!",
|
||||
"You already own this!": "Du besitzt es bereits!",
|
||||
"You can join in ${COUNT} seconds.": "Du kannst in ${COUNT} Sekunden beitreten",
|
||||
"You don't have enough tickets for this!": "Du hast nicht genug Tickets dafür!",
|
||||
"You don't own that.": "Du besitzt das nicht.",
|
||||
"You got ${COUNT} tickets!": "Du hast ${COUNT} Tickets!",
|
||||
"You got ${COUNT} tokens!": "Du hast ${COUNT} Token bekommen!",
|
||||
"You got a ${ITEM}!": "Du kriegst ein ${ITEM}!",
|
||||
"You got a chest!": "Du hast eine Truhe bekommen!",
|
||||
"You got an achievement reward!": "Du hast eine Belohnung für einen Erfolg erhalten!",
|
||||
"You have been promoted to a new league; congratulations!": "Du bist eine Liga aufgestiegen; Glückwunsch!",
|
||||
"You lost a chest! (All your chest slots were full)": "Du hast eine Truhe verloren! (Alle Truhen Slots waren besetzt)",
|
||||
"You must update the app to view this.": "Aktualisiere die App um es anzuzeigen.",
|
||||
"You must update to a newer version of the app to do this.": "Du musst deine Version updaten, um dies zu tun.",
|
||||
"You must update to the newest version of the game to do this.": "Du musst zur neusten Version des Spiels updaten um dies zu tun.",
|
||||
"You must wait a few seconds before entering a new code.": "Du musst ein wenig warten bevor du einen neuen Code eingeben kannst.",
|
||||
"You placed #${RANK} in a tournament!": "Du bist #${RANK} in einem Turnier geworden!",
|
||||
"You ranked #${RANK} in the last tournament. Thanks for playing!": "Du hast den #${RANK} Platz im letzten Turnier erreicht. Danke fürs Spielen!",
|
||||
"Your account was rejected. Are you signed in?": "Dein Account wurde abgelehnt. Bist du eingeloggt?",
|
||||
"Your ad views are not registering. Ad options will be limited for a while.": "Deine Anzeigenaufrufe werden derzeit nicht erfasst. Die Auswahl an Anzeigenoptionen ist vorübergehend eingeschränkt.",
|
||||
"Your copy of the game has been modified.\nPlease revert any changes and try again.": "Die Kopie dieses Spiels wurde modifiziert.\nÄnderungen rückgängig machen & neu versuchen.",
|
||||
"Your friend code was used by ${ACCOUNT}": "Dein Freundschafts-Code wurde von ${ACCOUNT} verwendet."
|
||||
},
|
||||
|
|
@ -1945,11 +2049,14 @@
|
|||
"toSkipPressAnythingText": "(beliebige Taste drücken um Tutorial zu überspringen)"
|
||||
},
|
||||
"twoKillText": "DOPPEL KILL!",
|
||||
"uiScaleText": "UI Wert",
|
||||
"unavailableText": "nicht verfügbar",
|
||||
"unclaimedPrizesText": "Es warten noch Belohnungen auf dich!",
|
||||
"unconfiguredControllerDetectedText": "Unkonfigurierter Controller erkannt:",
|
||||
"unlockThisInTheStoreText": "Das muss im Store freigeschaltet werden.",
|
||||
"unlockThisProfilesText": "Um mehr als ${NUM} Profile zu erstellen, brauchst du:",
|
||||
"unlockThisText": "Um das zu entsperren brauchst du:",
|
||||
"unsupportedControllerText": "Der Controller \"${NAME}\" wird nicht unterstützt",
|
||||
"unsupportedHardwareText": "Entschuldigung, diese Hardware wird nicht unterstützt.",
|
||||
"upFirstText": "Zuerst:",
|
||||
"upNextText": "Als Nächstes in Spiel ${COUNT}:",
|
||||
|
|
@ -1957,12 +2064,16 @@
|
|||
"upgradeText": "Verbessern",
|
||||
"upgradeToPlayText": "Upgrade auf \"${PRO}\" im Store um das zu Spielen.",
|
||||
"useDefaultText": "Standard benutzen",
|
||||
"userSystemScriptsCreateText": "Erschaffen Sie Benutzer-System-Scripts",
|
||||
"userSystemScriptsDeleteText": "Löschen Sie Benutzer-System-Scripts",
|
||||
"usesExternalControllerText": "Das Spiel nutzt einen externen Controller für die Eingaben.",
|
||||
"usingItunesText": "benutze Musik-App für Hintergrundmusik...",
|
||||
"usingItunesTurnRepeatAndShuffleOnText": "Stelle sicher, dass iTunes ZUFÄLLIG wiedergibt und ALLE wiederholt.",
|
||||
"v2AccountLinkingInfoText": "Um V2 Kontos zu verknüpfen, benutze den 'Konto Verwalten' Knopf.",
|
||||
"v2AccountRequiredText": "Dazu wird ein V2 Account benötigt. Upgrade dein Account und versuche es erneut.",
|
||||
"validatingBetaText": "Verifizieren der Beta...",
|
||||
"validatingTestBuildText": "Bestätige Testversion...",
|
||||
"viaText": "über",
|
||||
"victoryText": "Sieg!",
|
||||
"voteDelayText": "Die nächste Abstimmung kann erst in ${NUMBER} Sekunden gestartet werden.",
|
||||
"voteInProgressText": "Es wird bereits eine Abstimmung durchgeführt.",
|
||||
|
|
@ -2038,5 +2149,6 @@
|
|||
},
|
||||
"yesAllowText": "Ja, erlauben!",
|
||||
"yourBestScoresText": "Deine besten Punktzahlen",
|
||||
"yourBestTimesText": "Deine besten Zeiten"
|
||||
"yourBestTimesText": "Deine besten Zeiten",
|
||||
"yourPrizeText": "Deine Belohnung:"
|
||||
}
|
||||
132
dist/ba_data/data/languages/gibberish.json
vendored
132
dist/ba_data/data/languages/gibberish.json
vendored
|
|
@ -1,14 +1,16 @@
|
|||
{
|
||||
"accountRejectedText": "You ac woefije obj acwoew. Aj cowier wore cs?",
|
||||
"accountSettingsWindow": {
|
||||
"accountNameRules": "Acoief coej. woejf. cwoef ocoweofwjfj c wjefowfowef wocjoweffz",
|
||||
"accountNameRules": "Acoief coej. woejf. cwoef ocoweofwjfj c wjefowfowef wocjowedffz",
|
||||
"accountProfileText": "(acczntl prfflzlf)",
|
||||
"accountsText": "Acctntzz",
|
||||
"achievementProgressText": "Achilfjasdflz: ${COUNT} ouzt of ${TOTAL}",
|
||||
"campaignProgressText": "Cmapghan Progflzl: ${PROGRESS}",
|
||||
"changeOncePerSeason": "owe c wow chofu wefwoefjwofjowcowfwf.",
|
||||
"changeOncePerSeasonError": "You cows ow woefj woifjwo ec oweo fowijf owiejf (${NUM} cowefwe)",
|
||||
"createAnAccountText": "Crjoiew an Acoiejfdf",
|
||||
"customName": "Cow oj wojNaoa",
|
||||
"deleteAccountText": "Delft Cosdfsdf",
|
||||
"deviceSpecificAccountText": "Crrlzfjowf uznfl a divwfo-zpijfwo ancnfo ${NAME}",
|
||||
"googlePlayGamesAccountSwitchText": "If cows objc aw;eoifjw efoGoogl coweijwoejr,\nOc wore aero two cw oerjwoer jo gw spoeor.",
|
||||
"linkAccountsEnterCodeText": "Enrlr Cfdsz",
|
||||
|
|
@ -37,7 +39,7 @@
|
|||
"signInWithTestAccountText": "Sjc weo fwtjwoefj cowefwf",
|
||||
"signInWithText": "Sign fit cweof ${SERVICE}",
|
||||
"signInWithV2InfoText": "(an zofj c woof woke wo Eire wf ofjjowg)",
|
||||
"signInWithV2Text": "Sngo cow erwoj CBombSOudds acorjds.",
|
||||
"signInWithV2Text": "Sngo cow erwoj ${APP_NAME} acorjds.",
|
||||
"signOutText": "Sgngz Ozt",
|
||||
"signingInText": "Sgngngn infz..",
|
||||
"signingOutText": "Sngning ozt..",
|
||||
|
|
@ -350,6 +352,8 @@
|
|||
"allowText": "Alzéow",
|
||||
"alreadySignedInText": "Yr co wcowief woeijo wife ewf;\norc woeful oj ceofjwoejfowief\nocjwoef weofwocijweofw.",
|
||||
"apiVersionErrorText": "Cznt lzdz mdls ${NAME}; zt tarng faptr ${VERSION_USED}; wz rojafoqrz ${VERSION_REQUIRED}.",
|
||||
"applyText": "Appcfwf",
|
||||
"areYouSureText": "A foe fwocijwe?",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(\"Aztoz\" enablez thz onlzl when hedifphz arnz plzzdd inz)",
|
||||
"headRelativeVRAudioText": "Hzad Rlztefijv VRZ Azdjfozl",
|
||||
|
|
@ -374,14 +378,24 @@
|
|||
"boostText": "Bfzesf",
|
||||
"bsRemoteConfigureInAppText": "${REMOTE_APP_NAME} ís cónfigúred ín thé ápp itszlf.",
|
||||
"buttonText": "béttzn",
|
||||
"canWeDebugText": "Woíld yoí lúké BombZqíád to áítomátúcálly réport\nbígz, crázhéz, ánd bázúc ízágé únfo to thé dévélopér?\n\nThúz dátá contáúnz no pérzonál únformátúon ánd hélpz\nkéép thé gámé rínnúng zmoothly ánd bíg-fréép.",
|
||||
"canWeDebugText": "Woíld yoí lúké ${APP_NAME} to áítomátúcálly réport\nbígz, crázhéz, ánd bázúc ízágé únfo to thé dévélopér?\n\nThúz dátá contáúnz no pérzonál únformátúon ánd hélpz\nkéép thé gámé rínnúng zmoothly ánd bíg-fréép.",
|
||||
"cancelText": "Czéanczel",
|
||||
"cantConfigureDeviceText": "Sórry, ${DEVICE} ús nút cónfígúrzble.",
|
||||
"challengeEndedText": "Thzl cowfo jan fa eofnwoefnw.",
|
||||
"chatMuteText": "Mmof wChad",
|
||||
"chatMutedText": "Chad mamba",
|
||||
"chatUnMuteText": "Unobiaje Chafb",
|
||||
"chests": {
|
||||
"levelChestText": "LR${NUM} Czfjwer",
|
||||
"prizeOddsText": "Pzoierj Odfsds",
|
||||
"reduceWaitText": "Roijwoef Wjwore",
|
||||
"slotDescriptionText": "THowi fwoeifj wo pwoejr s.\n\nWOewr c woej fjpwoe ow erja otjfpoweijr,\nocjwpeo. cowiej rrhpag, and pco wejrwpot\ncaowej cowiers.",
|
||||
"slotText": "Chsof sdlfjoef ${NUM}",
|
||||
"slotsFullWarningText": "WARNINEF: All owe fwoe fowior ;woeffufll.\nAOcn weow eroapoghwpeoi we. owejpwoejowe.",
|
||||
"unlocksInText": "Ucowefij If"
|
||||
},
|
||||
"choosingPlayerText": "<chflzf plzlflr>",
|
||||
"claimText": "Clwefijwe",
|
||||
"codesExplainText": "Cody wc woeir wcpwep oijwoeifj\nwoe wefjwe ofiwjeocijwoerer.",
|
||||
"completeThisLevelToProceedText": "Yóz múst cómplítz\nthís lével tú próceed!",
|
||||
"completionBonusText": "Cúmplezión Búnís",
|
||||
|
|
@ -598,6 +612,7 @@
|
|||
"disableXInputDescriptionText": "Allow mor wow ejo4 cow oeicjwo cobu oaf woejfowie jowrj",
|
||||
"disableXInputText": "Dio cow eofwije",
|
||||
"disabledText": "Dfewfczfwef",
|
||||
"discardText": "Dfwecwer",
|
||||
"discordFriendsText": "Weor owe fwjeowi cow fowijfowjdfdf?\nJJowjef c jewel dODIj c jdjfosijfdfs!",
|
||||
"discordJoinText": "JWeoj wc c wwdofijsd",
|
||||
"doneText": "Dónz",
|
||||
|
|
@ -688,6 +703,8 @@
|
|||
"errorText": "Errórz",
|
||||
"errorUnknownText": "unknznlz errzzz",
|
||||
"exitGameText": "$Excej ${APP_NAME}",
|
||||
"expiredAgoText": "Expiofwef ${T} awoifje",
|
||||
"expiresInText": "Expoijfwe f in ${T}",
|
||||
"exportSuccessText": "'${NAME}' woejpcj",
|
||||
"externalStorageText": "Extzljrzl Stjrfjzfgz",
|
||||
"failText": "Fáilz",
|
||||
|
|
@ -755,6 +772,7 @@
|
|||
"copyCodeText": "Cpoef Cwfdf",
|
||||
"copyConfirmText": "COpic for cowejwdf.",
|
||||
"dedicatedServerInfoText": "For code wocj woiejfowiejf, loci joweijf owiejfw. Se eocwj efowiejo wcoweijf woeifowoco er.",
|
||||
"descriptionShortText": "Us fow cower. gowf pwoij df odfj g pawor aryh cowier.",
|
||||
"disconnectClientsText": "Thz wlzl dicntjf thz ${COUNT} pljflaf (s)\ninc yrrz prthra. Arz yrz fsrru?",
|
||||
"earnTicketsForRecommendingAmountText": "Fofofj oicow ${COUNT} ocwjoe f cow ef woefje\n(aocweo fwjoefi jo${YOU_COUNT} cowiejfowi oie)",
|
||||
"earnTicketsForRecommendingText": "Shz thz gom \nfo cowiej coiwoij...",
|
||||
|
|
@ -879,6 +897,12 @@
|
|||
"youHaveShortText": "you hv f ${COUNT}",
|
||||
"youHaveText": "yz hv ${COUNT} tickrrz"
|
||||
},
|
||||
"goldPass": {
|
||||
"desc1InfTokensText": "Infowef oTjwof.",
|
||||
"desc2NoAdsText": "Nz Weft",
|
||||
"desc3ForeverText": "Fejrwoijfz.",
|
||||
"goldPassText": "Goose Ppzif"
|
||||
},
|
||||
"googleMultiplayerDiscontinuedText": "Sowoer Gojf wel wouwen weoioc long wf won.\nI wow oe wefwjr pif g wfpawouja c oeij fw ocjaoiejowr.\nUntil. cowier oa j fapefij cpoypt ao coonnec awoiery.\n-Ercff",
|
||||
"googlePlayPurchasesNotAvailableText": "Weofiiwj woe woerd wieofjwe\ncome foe rj eofiaj cpwoe jrowjer..dd",
|
||||
"googlePlayServicesNotAvailableText": "GOowf cpw ef A coweij woerj.\nWomb woof cape wgwoijc we coowiejrerdss.",
|
||||
|
|
@ -975,6 +999,7 @@
|
|||
"importText": "Icwefwe",
|
||||
"importingText": "Imcowiew..",
|
||||
"inGameClippedNameText": "ic weof owef\n\"${NAME}\"",
|
||||
"inboxText": "Iboiwjef",
|
||||
"installDiskSpaceErrorText": "ERROR: Unzlbj ao ppc pwef oj oinosjs.\nYos may aoefo wocw oeitjoidosdfdve.\nCjfewf wocjdo spac ando ro gaing.",
|
||||
"internal": {
|
||||
"arrowsToExitListText": "préss ${LEFT} ór ${RIGHT} tó exút lzst",
|
||||
|
|
@ -1031,12 +1056,14 @@
|
|||
"touchScreenJoinWarningText": "Yz hv jofndsf woijt iafh doctoucohdsf.\nIf oth dfawas do oasdf osdft mwne owijf oadsjf.",
|
||||
"touchScreenText": "TóuchScrzén",
|
||||
"trialText": "tríál",
|
||||
"unableToCompleteTryAgainText": "Unweojw cowe rwpor oijwe fwoer noww.\nPlze fow cowe gagainf.",
|
||||
"unableToResolveHostText": "Error: cow e fwjeociwjeorir.",
|
||||
"unavailableNoConnectionText": "Tho fiw ficj woiejf paowejf (no itnwotower connecotjs?)",
|
||||
"vrOrientationResetCardboardText": "Us this to weoojeif co VR owfjow ego\nTz pc we fwotj oa ocw eoowf eo awoifoacoincwr.",
|
||||
"vrOrientationResetText": "VR ooiwjfowif rnefz.",
|
||||
"willTimeOutText": "(wzlf tmz oat if idle)"
|
||||
},
|
||||
"inventoryText": "Inoejowfjwf",
|
||||
"jumpBoldText": "JZMP",
|
||||
"jumpText": "Júmp",
|
||||
"keepText": "Kéepz",
|
||||
|
|
@ -1084,8 +1111,11 @@
|
|||
"seasonEndsMinutesText": "Seaonf woeo cowi fj${NUMBER} mcoinwefoij.",
|
||||
"seasonText": "Seocwofj ${NUMBER}",
|
||||
"tournamentLeagueText": "Yzz mff erwr ${NAME} leg foic woefin woef oeijfwfew.",
|
||||
"trophyCountsResetText": "Trphy cofo wuecw owef owioiafowf."
|
||||
"trophyCountsResetText": "Trphy cofo wuecw owef owioiafowf.",
|
||||
"upToDateBonusDescriptionText": "Plwefj cowe fowc woer weoirjo\nc woejf weowerj r ${PERCENT}% ocw edfh.",
|
||||
"upToDateBonusText": "Up-Ff-Odfjw DbJfdjs."
|
||||
},
|
||||
"learnMoreText": "Loweifj cowe",
|
||||
"levelBestScoresText": "Bsfwo cowiejo ef${LEVEL}",
|
||||
"levelBestTimesText": "Best wfm coi ${LEVEL}",
|
||||
"levelFastestTimesText": "Fztjst tmzf on ${LEVEL}",
|
||||
|
|
@ -1132,6 +1162,8 @@
|
|||
"modeArcadeText": "Aroc Mofwfz",
|
||||
"modeClassicText": "Cjwofej mDofd",
|
||||
"modeDemoText": "Dfwocij Mmdff",
|
||||
"moreSoonText": "Morew owjeo zoonwf...",
|
||||
"mostDestroyedPlayerText": "Mowe Sfewo f Cpwowjef",
|
||||
"mostValuablePlayerText": "Móst Válúablz Pláyér",
|
||||
"mostViolatedPlayerText": "Móst Víoláted Pláyer",
|
||||
"mostViolentPlayerText": "Móst Víolznt Pláyér",
|
||||
|
|
@ -1148,6 +1180,7 @@
|
|||
"nameSuicideText": "${NAME} cómmittéd súizide.",
|
||||
"nameText": "Noiwjfe",
|
||||
"nativeText": "Nztvvz",
|
||||
"newExclaimText": "Nwefw1!",
|
||||
"newPersonalBestText": "Néw pérsónzl bést!",
|
||||
"newTestBuildAvailableText": "A nwlf tat blfjl is aviflflzblz! (${VERSION} blzd ${BUILD}).\nGzt iz tat ${ADDRESS}",
|
||||
"newText": "Ncw",
|
||||
|
|
@ -1159,6 +1192,7 @@
|
|||
"noExternalStorageErrorText": "Nz xtenrlf stlfsdf fnff onf thz dfvfojfzz",
|
||||
"noGameCircleText": "Errór: nút lúggzd íntó Góme Cúrclz",
|
||||
"noJoinCoopMidwayText": "Có-óp gúmzs cán't bz jóinzd mídwáy.",
|
||||
"noMessagesText": "No wwoej wced",
|
||||
"noPluginsInstalledText": "No Plugiwue sowiej fwdf",
|
||||
"noProfilesErrorText": "Yoú hávz nó pláyerz prófilzs, só yóu're stzck wíth '${NAME}'.\nGó tz Sétzings->Pláyerz Prófiles tú mzke yóurszlf á prófile.",
|
||||
"noScoresYetText": "Nz scrrlz ytz.",
|
||||
|
|
@ -1168,6 +1202,7 @@
|
|||
"noValidMapsErrorText": "Nó válíd máps fóund fúr thzs gáme typz.",
|
||||
"notEnoughPlayersRemainingText": "Nt zefwnoef plrjr rmeinging; exit anfo iwfj owjf oj ga emga;",
|
||||
"notEnoughPlayersText": "Yf nfdf a taflew ${COUNT} pfo wotj wofijow afo game!",
|
||||
"notEnoughTicketsText": "Not Fowej Tickewerwe!",
|
||||
"notNowText": "Nót Núw",
|
||||
"notSignedInErrorText": "Yz mst bz snginf intof yrrz accnt tz dz thzz.",
|
||||
"notSignedInGooglePlayErrorText": "Ym fij cow fj wo cowe toiw jcoj ojwoefj owi.",
|
||||
|
|
@ -1180,6 +1215,9 @@
|
|||
"onText": "Ón",
|
||||
"oneMomentText": "One Mmcowmerz..",
|
||||
"onslaughtRespawnText": "${PLAYER} wúll réspawn das wávz ${WAVE}",
|
||||
"openMeText": "Opwef cMF",
|
||||
"openNowText": "Opzef Nweer",
|
||||
"openText": "Opwefw",
|
||||
"orText": "${A} orz ${B}",
|
||||
"otherText": "Ofowiejf....",
|
||||
"outOfText": "(#${RANK} oút ófz ${ALL})",
|
||||
|
|
@ -1275,6 +1313,8 @@
|
|||
"punchText": "Púzch",
|
||||
"purchaseForText": "Púrcháse fúrz ${PRICE}",
|
||||
"purchaseGameText": "Púrchúze Gáme",
|
||||
"purchaseNeverAvailableText": "Some f , zf w owe f;woef fjsdgoiwejf sldfjsdjfsdf.\nGJ who woe roe rwhe gpwepgoi elf. dfoifj g;weoi jwo. fwjgw theorieorjdsd f woof wdofjf.",
|
||||
"purchaseNotAvailableText": "Thief o c;weo weoifj weft odin other.",
|
||||
"purchasingText": "Prjrcjfz...",
|
||||
"quitGameText": "Qcoifj ${APP_NAME}",
|
||||
"quittingIn5SecondsText": "Quéttzng ín 5 sécznds...",
|
||||
|
|
@ -1318,6 +1358,7 @@
|
|||
"version_mismatch": "Veroi jmoiowoejf\nMkac aot co boaisoijero caoioisd fjaoer\nadc ot oacouweotu vowe ron aga."
|
||||
},
|
||||
"removeInGameAdsText": "Unlkjfj \"${PRO}\" in cowj wje of wejfoiwfoo oifoiwjef.",
|
||||
"removeInGameAdsTokenPurchaseText": "LWEFJOE COJW EREFW: Pruwo cwoi Ao fogjwe cwoe reowj owie ain-gm woafj owwrds.",
|
||||
"renameText": "Rzngmlz",
|
||||
"replayEndText": "Enz Rpllz",
|
||||
"replayNameDefaultText": "Lzts Gmzl Rplzlz",
|
||||
|
|
@ -1386,6 +1427,8 @@
|
|||
"enterPromoCodeText": "Eznter Cdzs",
|
||||
"forTestingText": "Ntz: thz vlarj farz olflf rzz tsffcn anz wllz bz llfsf whnzl thzz app exrtzz.",
|
||||
"helpTranslateText": "${APP_NAME} lngalsdf transaldflksdfj arz fjocdmaosdf\nsprnarted effrztzs. Ifsdf oud'fu likzz to cmdfoasdf corectsf\na sd fjafdsoijdf, flfowefj thz fljlnkdd blzljf. Thansdlfn in andncas!",
|
||||
"insecureConnectionsDescriptionText": "now come fowdifjowdf ckwdf , c,woer\no woef owiefjw f cpawp a;oiweroijdf",
|
||||
"insecureConnectionsText": "Sefu cwoe co wi cwodijfdfd",
|
||||
"kickIdlePlayersText": "Kzkck Idlzlf Plzjrs",
|
||||
"kidFriendlyModeText": "Krz-Frjijglfz-Mzdz (rdfjifz voioifjf, fz)",
|
||||
"languageText": "Lnglfjslfd",
|
||||
|
|
@ -1446,6 +1489,7 @@
|
|||
},
|
||||
"spaceKeyText": "spzz",
|
||||
"statsText": "Sfawfwf",
|
||||
"stopRemindingMeText": "Stoij fPRo wwcoe Pfm",
|
||||
"storagePermissionAccessText": "Tho cowefj woiejowefw.",
|
||||
"store": {
|
||||
"alreadyOwnText": "Yorz alrlfzl wozl ${NAME}!",
|
||||
|
|
@ -1509,6 +1553,7 @@
|
|||
"testBuildValidatedText": "Tst Bjldf Vlaldkfsf; Enjzjf!",
|
||||
"thankYouText": "Thánk yóu fór yóur súppórt! Enjóy thé gáme!!",
|
||||
"threeKillText": "TRÍPLZ KÚLL!!",
|
||||
"ticketsDescriptionText": "Towfjwef cowej rocw eoi woujcoiwu eor, gowbof\nocowo wper ewrjwefow fowije ostrooiwjeofwrs.\n\nToco weo jweori weotwocoiw eowijoer oiwejf\nCow eower gpaogj woef owjefapef wigowijeo iw we.",
|
||||
"timeBonusText": "Tíme Bónús",
|
||||
"timeElapsedText": "Tíme Elápszd",
|
||||
"timeExpiredText": "Tzmz Exprireizdd",
|
||||
|
|
@ -1519,10 +1564,24 @@
|
|||
"tipText": "Tízp",
|
||||
"titleText": "Bmbmsqdz",
|
||||
"titleVRText": "BomboFjof VR",
|
||||
"tokens": {
|
||||
"getTokensText": "Gje Cowjerr",
|
||||
"notEnoughTokensText": "Nt come. fowijodifj!",
|
||||
"numTokensText": "${COUNT} Tlwefjwf",
|
||||
"openNowDescriptionText": "Yowu cw oeo we ofiwjeroj\ncow eoowe rwo oweifuwef\now w oeijrer.",
|
||||
"shinyNewCurrencyText": "Boiwfw wet fwoeifj wofz ofwroru.",
|
||||
"tokenPack1Text": "Smeow Tlwkf Pcer",
|
||||
"tokenPack2Text": "Mfowefj howei roweirdf",
|
||||
"tokenPack3Text": "Lwofiw lw wore doijfdf",
|
||||
"tokenPack4Text": "JWfowji howei oweirjdf",
|
||||
"tokensDescriptionText": "Towefjw cowe rowjf. fa;weof wegogowijeoiwjf\nfow ef cowiej roweir gjpgoj fw eojrweio ga;oijw\n\nYoucwe orwe c weowherapogpouggj foiwejow\nagpo cpaowerp.. Thgapoeiwjj cowejrhghapjzoejf\nwoicw eo wor apojpcowieo g gjeiwroeijds.",
|
||||
"youHaveGoldPassText": "You who owe rowjfosijdf.\nAlf wo cwoerpwer rwoer f.\nCwjodi!"
|
||||
},
|
||||
"topFriendsText": "Tóp Fríendz",
|
||||
"tournamentCheckingStateText": "Chkfjfowef oitwof oweifja oef pawoej owef...",
|
||||
"tournamentEndedText": "This foil jefoi weoa echo sd. An ewoifj wo oowifjowe soon.",
|
||||
"tournamentEntryText": "Tnofjwfe oecowiejw",
|
||||
"tournamentFinalStandingsText": "Fiowefj Stdfijwef",
|
||||
"tournamentResultsRecentText": "Rcnet Touaofius aRamalsdf.",
|
||||
"tournamentStandingsText": "Tzewfjwoij Stndfalfjz",
|
||||
"tournamentText": "Tanfowijfowef",
|
||||
|
|
@ -1562,6 +1621,22 @@
|
|||
"Zoe": "Zob",
|
||||
"Zola": "Zlefw"
|
||||
},
|
||||
"chestNames": {
|
||||
"Chest": "Czjofwf",
|
||||
"L1": "LZ1",
|
||||
"L1 Chest": "LX1 CHzer",
|
||||
"L2": "LZ2",
|
||||
"L2 Chest": "LX2 CHzer",
|
||||
"L3": "LZ3",
|
||||
"L3 Chest": "LX3 CHzer",
|
||||
"L4": "LZ4",
|
||||
"L4 Chest": "LX4 CHzer",
|
||||
"L5": "LZ5",
|
||||
"L5 Chest": "LX5 CHzer",
|
||||
"L6": "LZ6",
|
||||
"L6 Chest": "LX6 CHzer",
|
||||
"Unknown Chest": "Ucwoejrwer Cjoefwijf"
|
||||
},
|
||||
"coopIconNames": {
|
||||
"Infinite\nOnslaught": "Infíníte\nÓnsláught",
|
||||
"Infinite\nRunaround": "Ínfíníte\nRúnaróúnd",
|
||||
|
|
@ -1597,6 +1672,18 @@
|
|||
"Uber Onslaught": "Ubzr Onzláught",
|
||||
"Uber Runaround": "Ubúr Runáround"
|
||||
},
|
||||
"displayItemNames": {
|
||||
"${C} Tickets": "${C} Towfijwezz",
|
||||
"${C} Tokens": "${C} Tjowefjdfzzz",
|
||||
"Chest": "Cjoziejr",
|
||||
"L1 Chest": "LZ1 Cohwerd",
|
||||
"L2 Chest": "LZ2 Cjzoerr",
|
||||
"L3 Chest": "LZ3 Coijewr",
|
||||
"L4 Chest": "LZ4 Cheowrd",
|
||||
"L5 Chest": "LZ5 Coewer",
|
||||
"L6 Chest": "LZ6 Cowiejrer",
|
||||
"Unknown Chest": "Unoweijr Coizjerer"
|
||||
},
|
||||
"gameDescriptions": {
|
||||
"Be the chosen one for a length of time to win.\nKill the chosen one to become it.": "Bé thé chósen ónz fór a léngth éf tíme tó wzn.\nKzll thé chósen óne tz bécome út.",
|
||||
"Bomb as many targets as you can.": "Bmb ojwe fo cj woef weoijcoj ofz.",
|
||||
|
|
@ -1680,8 +1767,9 @@
|
|||
"languages": {
|
||||
"Arabic": "Aroijwe",
|
||||
"Belarussian": "Blfrurzfozz",
|
||||
"Chinese": "Choifwef Soimcwoef",
|
||||
"ChineseTraditional": "Cheifwoefjw Trwwefsdfs",
|
||||
"Chinese": "Chweoifwej - Sompefwe",
|
||||
"ChineseSimplified": "CHowef - Smpfoewfdf",
|
||||
"ChineseTraditional": "Choweijwer - Transitiondsf",
|
||||
"Croatian": "Crrlzlrrs",
|
||||
"Czech": "Czffef",
|
||||
"Danish": "Dnailöş",
|
||||
|
|
@ -1702,13 +1790,18 @@
|
|||
"Korean": "Kornesnzn",
|
||||
"Malay": "FJwoerjjdf",
|
||||
"Persian": "Psdfsdf",
|
||||
"PirateSpeak": "Pirafw ef ocOSIf",
|
||||
"Polish": "Pzlishz",
|
||||
"Portuguese": "Portuguenejs",
|
||||
"PortugueseBrazil": "Powerower - Brfoisjfewfd",
|
||||
"PortuguesePortugal": "Porwofweuf - Poweijfdffz",
|
||||
"Romanian": "Rmrfoijfzf",
|
||||
"Russian": "Rzznrsn",
|
||||
"Serbian": "Socowiejf",
|
||||
"Slovak": "Zokkis",
|
||||
"Spanish": "Snaddies",
|
||||
"SpanishLatinAmerica": "Spoweijwe. - Ljf foewfij oAmweroijd",
|
||||
"SpanishSpain": "Spwoefj - Zpfwjefdf",
|
||||
"Swedish": "Swdiiszh",
|
||||
"Tamil": "Tmfiewf",
|
||||
"Thai": "Thzff",
|
||||
|
|
@ -1776,7 +1869,9 @@
|
|||
"Cheating detected; scores and prizes suspended for ${COUNT} days.": "Chowcj eof weoc jco; oe jwoeijf wojcwjeowfj woejf o${COUNT} dzf.",
|
||||
"Could not establish a secure connection.": "Cjfoi cn ooi a tac c oweocoicoinr.",
|
||||
"Daily maximum reached.": "Dfilaf möaksokato ravhgedök.",
|
||||
"Daily sign-in reward": "Dilse Sf wcowe owOSDfwrd",
|
||||
"Entering tournament...": "Ernwoefijweo jfowjefw...",
|
||||
"Higher streaks lead to better rewards.": "Hfweo lstor fljit f ob oijtow rewrds.",
|
||||
"Invalid code.": "Invflijf cddz.",
|
||||
"Invalid payment; purchase canceled.": "Info ejcwpeopwer; purwup cowefjwef.",
|
||||
"Invalid promo code.": "Ivnfjfo pmpwf cdffz.",
|
||||
|
|
@ -1785,11 +1880,14 @@
|
|||
"Item unlocked!": "Iwerw cowefjwoeijwer!",
|
||||
"LINKING DENIED. ${ACCOUNT} contains\nsignificant data that would ALL BE LOST.\nYou can link in the opposite order if you'd like\n(and lose THIS account's data instead)": "LINKING FOFJWEF. ${ACCOUNT} o iwjof\nowe oijwe c woeoijwf oAL FJOEJI OCJW.\nYou off leojwoer wcowe foiwjefojweoiwf\n(a c owfw oefjTHIS c weoojw oesf)",
|
||||
"Link account ${ACCOUNT} to this account?\nAll existing data on ${ACCOUNT} will be lost.\nThis can not be undone. Are you sure?": "Lcjwe fwofj o ${ACCOUNT} to cowejfweof?\nAll wefoiwejtthosjic w ${ACCOUNT} cowiejf tjsl.\nThis wefowondot onsof. Aojr tyocu wsure?",
|
||||
"Longer streaks lead to better rewards.": "LFowe jewoi ewr c weorj eowr efoiwjersr",
|
||||
"Max number of playlists reached.": "Möaks nfmow oijeplyalfaf rcnoahfd.",
|
||||
"Max number of profiles reached.": "Möks fresadora c owiejfowe rafgexed.",
|
||||
"Maximum friend code rewards reached.": "Cmwoe oc wo Ego wel jacoweij weer möaksiöas.",
|
||||
"Message is too long.": "CMew ociwje owe el.",
|
||||
"New tournament result!": "Nwef toaiwjowcw orursllsst!",
|
||||
"No servers are available. Please try again soon.": "Ns seroiejwc wefjwoe wj. Ple wer wfwef ewfowes.",
|
||||
"No slots available. Free a slot and try again.": "Nz sliejfwo capoejw f. Fizi cowie rw gjwoe woerdd.",
|
||||
"Profile \"${NAME}\" upgraded successfully.": "Profjojf \"${NAME}\" oupfuap coj woijsfsf.",
|
||||
"Profile could not be upgraded.": "Profojfo coild onot foj bupfrade.",
|
||||
"Purchase successful!": "Pcjofj scwcserfflz!",
|
||||
|
|
@ -1799,7 +1897,9 @@
|
|||
"Sorry, this code has already been used.": "Srrc, thiz codds has aoiwjre bndd usdd.",
|
||||
"Sorry, this code has expired.": "Sorrro, thi cowf ahs arowjers.",
|
||||
"Sorry, this code only works for new accounts.": "Srror, this cod ojfowf work for know accarrn.",
|
||||
"Sorry, this has expired.": "Sorrr, wot wf coijwoe rjexpirrd.",
|
||||
"Still searching for nearby servers; please try again soon.": "Stjowf sera cj focnwoeir eserevers; pell cutlery a gao cốn.",
|
||||
"Streak: ${NUM} days": "Srowefj ${NUM} wsdfdsf",
|
||||
"Temporarily unavailable; please try again later.": "Tmwoef wf oucwof wf; cowejf awoj cwoijers.",
|
||||
"The tournament ended before you finished.": "Thf weoijw oeij aoejf aowejf owjeof aiwjeofjwef.",
|
||||
"This account cannot be unlinked for ${NUM} days.": "Th ow co ref w owjoso o ${NUM} dyafsoef.",
|
||||
|
|
@ -1810,19 +1910,28 @@
|
|||
"Tournaments require ${VERSION} or newer": "Toijfw qojwce ${VERSION} or wcoiwej",
|
||||
"Unlink ${ACCOUNT} from this account?\nAll data on ${ACCOUNT} will be reset.\n(except for achievements in some cases)": "Uncljwf ${ACCOUNT} cowed wthosijf?\nAll cowejt ocjiwf ${ACCOUNT} cowiest dois.\n(expo fowefj etwohoa tand Costers)",
|
||||
"WARNING: complaints of hacking have been issued against your account.\nAccounts found to be hacking will be banned. Please play fair.": "WARNOEF: com owe fw epfojwe. cj weo fjwefo wejfo wef jocij eowiefwef.\nCoaj owe fwefjwoo oweoifwoe fj ewrj woc. Ppel fwo c worywwr.",
|
||||
"Wait reduced!": "Woer rowicjowijer!",
|
||||
"Warning: This version of the game is limited to old account data; things may appear missing or out of date.\nPlease upgrade to a newer version of the game to see your latest account data.": "Weofwief: T wof weio ocwe gipwoej. gowef apf wiefhp woiefpf weof wociwjeoirower odfowfjowjfdf.\nOW fw ef wejotiewt hgpgoregpw98g4g f wocow eij agoiweo g ghgpw gpwoepoipatajfwe owefwef.",
|
||||
"Would you like to link your device account to this one?\n\nYour device account is ${ACCOUNT1}\nThis account is ${ACCOUNT2}\n\nThis will allow you to keep your existing progress.\nWarning: this cannot be undone!\n": "Wocj weo ocj woiej fowj ofj aioj ojt;oi df joijwotijs?\n\nYoc uweof c owej owijf ${ACCOUNT1}\nThoci wef coj woeijf ${ACCOUNT2}\n\nThoc jweo owej fow cwi efod odo focwoe.\nWocj fo : cwo c weof odo fauoino!",
|
||||
"You already own this!": "Yz fwowefoi coiweno fjoz!",
|
||||
"You can join in ${COUNT} seconds.": "You won cowier fwoef ${COUNT} coiwejf.",
|
||||
"You don't have enough tickets for this!": "Yz dfoiwf ahv weoj fwoitjoicker fz thzz!",
|
||||
"You don't own that.": "You loci jeff jwoefwe.",
|
||||
"You got ${COUNT} tickets!": "Y zfowej f${COUNT{ ticeofjwe!",
|
||||
"You got ${COUNT} tickets!": "Y zfowej f${COUNT} ticeofjwe!",
|
||||
"You got ${COUNT} tokens!": "You got ${COUNT} tokewfjwf!",
|
||||
"You got a ${ITEM}!": "Yzz gtzz z ${ITEM}!",
|
||||
"You got a chest!": "Yor foiwje rgo c chserser!!!",
|
||||
"You got an achievement reward!": "You cowe owf woef weg;oai cower jower!",
|
||||
"You have been promoted to a new league; congratulations!": "Yf co efoj woef woecj owejfoiwef lfj ; congaroiwjf woes!",
|
||||
"You lost a chest! (All your chest slots were full)": "Ycowe wo sowfweo ! (ALlco weofi wf o; cwoer orul)",
|
||||
"You must update the app to view this.": "Yowu cow woef jwowo ejwe;oij wofjwoed.",
|
||||
"You must update to a newer version of the app to do this.": "Yz mocu upc oig owc owt oc o ca; ;apc oi oj ;oj.",
|
||||
"You must update to the newest version of the game to do this.": "Yocwe fweoowo weotjosij;ow. woeower weroso taotoautats.",
|
||||
"You must wait a few seconds before entering a new code.": "Yzz msfgt wt a fz cwcfwf bfrrzz entef wcnfz cdszz.",
|
||||
"You placed #${RANK} in a tournament!": "Yozu c wpefo wef j #${RANK} oci wef wocwj otjwerd.",
|
||||
"You ranked #${RANK} in the last tournament. Thanks for playing!": "Yz wf ooiwef #${RANK} ofijwe oijw oijef . Thansf afpaflalay!",
|
||||
"Your account was rejected. Are you signed in?": "Yoew cowcjwe woe woeiowirwo eirjw co weoijfow ej?",
|
||||
"Your ad views are not registering. Ad options will be limited for a while.": "Ywer f wefi wue fiwe ifwiuehriweurhd, Abd fiwe fiwheigiweir hfsdfdsf,",
|
||||
"Your copy of the game has been modified.\nPlease revert any changes and try again.": "Yr coijw epowf oief oaefoiwfowjef\nPlejasefoaw efojw oefjwoejo aciowejrow.",
|
||||
"Your friend code was used by ${ACCOUNT}": "Yrrj cof owf owcjowj fwoafeof ${ACCOUNT}"
|
||||
},
|
||||
|
|
@ -1978,6 +2087,7 @@
|
|||
"twoKillText": "DÓÚBLZ KÍLL!",
|
||||
"uiScaleText": "SUFwfef",
|
||||
"unavailableText": "unavlfldsfjlbz",
|
||||
"unclaimedPrizesText": "You c weo inp xo fowe fwiejrpdof!",
|
||||
"unconfiguredControllerDetectedText": "Uncónfzgúred cúntrzllír dítzctíd:",
|
||||
"unlockThisInTheStoreText": "Thz mf voi eunlcoef owef joiefsfrwe.",
|
||||
"unlockThisProfilesText": "To cowier co we ${NUM} pcoer, cow oicoj:",
|
||||
|
|
@ -1996,6 +2106,7 @@
|
|||
"usingItunesText": "Ufwefw Mfwoef co ef srnweoicjowe...",
|
||||
"usingItunesTurnRepeatAndShuffleOnText": "Plzelz mkdk srzlc shfflds isON anz andpreld is ALZ unz iTunes",
|
||||
"v2AccountLinkingInfoText": "To ljeowirj V2 sojowe, use fo 'Mnawefw Acoiwo' bons.",
|
||||
"v2AccountRequiredText": "Thaw cw eo iwefio V2 Oicwe j. PC wepfo woj welag Wofiwj iowjoejfdffd.",
|
||||
"validatingBetaText": "Válúdztíng Bztá...",
|
||||
"validatingTestBuildText": "Vldfjdfoi jtese-bsdfasfd...",
|
||||
"viaText": "sdf",
|
||||
|
|
@ -2039,7 +2150,7 @@
|
|||
},
|
||||
"wiimoteListenWindow": {
|
||||
"listeningText": "Líszéngng Fúr Wíímztes...",
|
||||
"pressText": "Prész Wíimzte bóttzns 1 azd 2 símultáneoúsly.",
|
||||
"pressText": "Prész Wíimzte bóttzns 1 azd 2 símultáneoúsly.\n",
|
||||
"pressText2": "Onz néwer Wiímótes wíth Moóión Plús búilt ón, przss thé réd 'sync' búttón ón thé bzck ónstzad.",
|
||||
"pressText2Scale": 0.55,
|
||||
"pressTextScale": 1.0
|
||||
|
|
@ -2050,7 +2161,7 @@
|
|||
"listenText": "Lústzn",
|
||||
"macInstructionsText": "Makú zurú your Wáá áz off and Bluútooth áz únablúd\non your Mac, thún prúzz 'Láztún'. Wáámotú zupport can\nbú a bát flaky, zo you may havú to try a fúw támúz\nbúforú you gút a connúctáon.\n\nBluútooth zhould handlú up to 7 connúctúd dúvácúz,\nthough your málúagú may vary.\n\nBombZquad zupportz thú orágánal Wáámotúz, Nunchukz,\nand thú Clazzác Controllúr.\nThú núwúr Wáá Rúmotú Pluz now workz too\nbut not wáth attachmúntz.",
|
||||
"macInstructionsTextScale": 0.7,
|
||||
"thanksText": "Thznks té thz DérwiinRémote táam\nFúr máking thés pzsséble.",
|
||||
"thanksText": "Thznks té thz DérwiinRémote táam\nFúr máking thés pzsséble.\n",
|
||||
"thanksTextScale": 0.8,
|
||||
"titleText": "Wzimóte Sztúp"
|
||||
},
|
||||
|
|
@ -2076,5 +2187,6 @@
|
|||
},
|
||||
"yesAllowText": "Yús, Allúwz!",
|
||||
"yourBestScoresText": "Yózr Bést Scúrzszz",
|
||||
"yourBestTimesText": "Yózr Bést Tímés"
|
||||
"yourBestTimesText": "Yózr Bést Tímés",
|
||||
"yourPrizeText": "Yowe ppwefdzz:"
|
||||
}
|
||||
61
dist/ba_data/data/languages/greek.json
vendored
61
dist/ba_data/data/languages/greek.json
vendored
|
|
@ -6,7 +6,9 @@
|
|||
"campaignProgressText": "Πρόοδος Ιστορίας [Δύσκολο]: ${PROGRESS}",
|
||||
"changeOncePerSeason": "Μπορείτε να το αλλάξετε μόνο μία φορά ανά σεζόν.",
|
||||
"changeOncePerSeasonError": "Πρέπει να περιμένετε μέχρι την επόμενη σεζόν για να το αλλάξετε ξανά (${NUM} days)",
|
||||
"createAnAccountText": "Δημιουργήστε έναν Λογαριασμό",
|
||||
"customName": "Προσαρμοσμένο Όνομα",
|
||||
"deleteAccountText": "Διαγραφή λογαριασμού",
|
||||
"googlePlayGamesAccountSwitchText": "Αν θέλετε να χρησιμοποιείσετε έναν διφορετικό λογαριασμό Google,\nχρησιμοποιείστε την εφαρμογή Google Play Games γιανα αλλάξετε.",
|
||||
"linkAccountsEnterCodeText": "Εισάγετε Κωδικό",
|
||||
"linkAccountsGenerateCodeText": "Δημιουργήστε Κωδικό",
|
||||
|
|
@ -24,6 +26,7 @@
|
|||
"setAccountNameDesc": "Επιλέξτε το όνομα που θα φαίνεται στο λογαριασμό σας. Μπορείτε\nνα χρησιμοποιήσετε το όνομα ενός από τους δεσμευμένους σας\nλογαριασμούς ή να δημιουργήσετε ένα μοναδικό, προσαρμοσμένο όνομα.",
|
||||
"signInInfoText": "Συνδεθείτε για να συλλέξετε εισητήρια, να συναγωνιστείτε στο διαδίκτυο\nκαι να μοιραστείτε τη πρόοδο σας ανάμεσα σε διάφορες συσκευές.",
|
||||
"signInText": "Σύνδεση",
|
||||
"signInWithAnEmailAddressText": "Συνδεθείτε με μία διεύθυνση email",
|
||||
"signInWithDeviceInfoText": "(ένας λογαριασμός μονάχα διαθέσιμος από αυτή τη συσκευή)",
|
||||
"signInWithDeviceText": "Σύνδεση με λογαριασμό συσκευής",
|
||||
"signInWithGameCircleText": "Σύνδεση με Game Circle",
|
||||
|
|
@ -32,7 +35,7 @@
|
|||
"signInWithTestAccountText": "Σύνδεση με δοκιμαστικό λογαριασμό",
|
||||
"signInWithText": "Σύνδεση μέσω ${SERVICE}",
|
||||
"signInWithV2InfoText": "ένας λογαριασμός που λειτουργεί σε όλες τις πλατφορμες",
|
||||
"signInWithV2Text": "Συνδεθείτε με ένα λογαριασμό BombSquad",
|
||||
"signInWithV2Text": "Συνδεθείτε με έναν λογαριασμό ${APP_NAME}",
|
||||
"signOutText": "Αποσύνδεση",
|
||||
"signingInText": "Σύνδεση...",
|
||||
"signingOutText": "Αποσύνδεση...",
|
||||
|
|
@ -340,6 +343,8 @@
|
|||
"allowText": "Να Επιτρέπεται",
|
||||
"alreadySignedInText": "Ο λογαριασμός σας είναι συνδεδεμένος από άλλη συσκευή.\nΠαρακαλώ, άλλαξε το λογαριασμό σας ή απενεργοποίησε \nτο παιχνίδι από τις άλλες συσκευες σας και ξαναπροσπάθηστε.",
|
||||
"apiVersionErrorText": "Can't load module ${NAME}; it targets api-version ${VERSION_USED}; we require ${VERSION_REQUIRED}.",
|
||||
"applyText": "Εφαρμογή",
|
||||
"areYouSureText": "Είστε σίγουροι;",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(Το \"Αυτόματο\" ενεργοποιεί αυτό μόνο όταν έχουν συνδεθεί ακουστικά)",
|
||||
"headRelativeVRAudioText": "Ρυθμίσεις σχετικές με VR ακουστικά",
|
||||
|
|
@ -361,14 +366,23 @@
|
|||
"boostText": "Ώθηση",
|
||||
"bsRemoteConfigureInAppText": "Το ${REMOTE_APP_NAME} είναι οριστικοποιημένο στην εφαρμογή από μόνο του.",
|
||||
"buttonText": "κουμπί",
|
||||
"canWeDebugText": "Θα θέλατε το BombSquad να στέλνει αυτόματη αναφορά σφαλμάτων,\nκατάρρευσης, και πληροφορίες βασικής χρήσης στο δημιουργό του;\n\nΤα δεδομένα δε περιέχουν προσωπικές σας πληροφορίες και\nβοηθούν το παιχνίδι να τρέχει ομαλά χωρίς σφάλματα.",
|
||||
"canWeDebugText": "Θα θέλατε το ${APP_NAME} να στέλνει αυτόματη αναφορά σφαλμάτων,\nκατάρρευσης, και πληροφορίες βασικής χρήσης στο δημιουργό του;\n\nΤα δεδομένα δε περιέχουν προσωπικές σας πληροφορίες και\nβοηθούν το παιχνίδι να τρέχει ομαλά χωρίς σφάλματα.",
|
||||
"cancelText": "Άκυρο",
|
||||
"cantConfigureDeviceText": "Συγνώμη, η συσκευή ${DEVICE} είναι μη οριστικοποιήσιμη.",
|
||||
"challengeEndedText": "Αυτή η πρόκληση έχει τελειώσει.",
|
||||
"chatMuteText": "Σίγαση Συζήτησης",
|
||||
"chatMutedText": "Συζήτηση σε Σίγαση",
|
||||
"chatUnMuteText": "Απενεργοποίηση Σίγασης",
|
||||
"chests": {
|
||||
"prizeOddsText": "Πιθανότητες βραβείων",
|
||||
"reduceWaitText": "Μείωστε την παραμονή",
|
||||
"slotDescriptionText": "Αυτή η θέση μπορεί να κρατήσει ένα σεντούκι.\n\nΝικήστε σεντούκια παίζοντας επίπεδα ιστορίας,\nσυμμετέχοντας σε τουρνουά, και ολοκληρώνοντας\nεπιτεύγματα.",
|
||||
"slotText": "Θέση σεντουκιού ${NUM}",
|
||||
"slotsFullWarningText": "ΠΡΟΕΙΔΟΠΟΙΗΣΗ: Όλες οι θέσεις σεντουκιών σας είναι γεμάτες.\nΟποιαδήποτε σεντούκια κερδίσετε σε αυτό το παιχνίδι θα χαθούν.",
|
||||
"unlocksInText": "Ξεκλειδώνεται Σε"
|
||||
},
|
||||
"choosingPlayerText": "<επιλογή παίκτη>",
|
||||
"claimText": "Διεκδήκηση",
|
||||
"codesExplainText": "Οι κωδικοί παρέχονται από τον δημιουργό για τη\nδιάγνωση και την επιδιόρθωση προβλημάτων λογαριασμού.",
|
||||
"completeThisLevelToProceedText": "Πρέπει να ολοκληρώσετε αυτό\nτο επίπεδο για να προχωρήσετε!",
|
||||
"completionBonusText": "Μπόνους Ολοκλήρωσης",
|
||||
|
|
@ -554,6 +568,7 @@
|
|||
"demoText": "Επίδειξη",
|
||||
"denyText": "Απαγόρευση",
|
||||
"deprecatedText": "Καταργήθηκε",
|
||||
"descriptionText": "Περιγραφή",
|
||||
"desktopResText": "Ανάλυση Σταθερού Η/Υ",
|
||||
"deviceAccountUpgradeText": "Προσοχή:\nΧρησιμοποιειτέ ένα λογαριασμό συσκευής(${NAME}).\nΟι λογαριασμοί συσκευών θα αφαιρεθούν σε μέλλουσα ενημέρωση.\nΑναβαθμίστε σε ένα λογαριασμό V2 αν θέλετε να διατηρήσετε την πρόοδο σας.",
|
||||
"difficultyEasyText": "Εύκολο",
|
||||
|
|
@ -565,6 +580,7 @@
|
|||
"disableXInputDescriptionText": "Επιτρέπει περισσότερα από 4 χειριστήρια αλλά μπορεί να μη λειτουργήσει.",
|
||||
"disableXInputText": "Απενεργοποίηση XIinput",
|
||||
"disabledText": "Απενεργοποιημένο",
|
||||
"discardText": "Απόρριψη",
|
||||
"discordFriendsText": "Θέλετε να βρείτε νέους φίλους για να παίξετε;\nΜπείτε στο Discord μας και βρείτε νέους φίλους!",
|
||||
"discordJoinText": "Μπείτε στο Discord",
|
||||
"doneText": "Έγινε",
|
||||
|
|
@ -647,6 +663,8 @@
|
|||
"errorText": "Σφάλμα",
|
||||
"errorUnknownText": "άγνωστο σφάλμα",
|
||||
"exitGameText": "Έξοδος από το ${APP_NAME};",
|
||||
"expiredAgoText": "Έληξε πριν από ${T}",
|
||||
"expiresInText": "Λήγει σε ${T}",
|
||||
"exportSuccessText": "Έγινε εξαγωγή του στοιχείου '${NAME}'.",
|
||||
"externalStorageText": "Εξωτερικός Αποθηκευτικός Χώρος",
|
||||
"failText": "Αποτυχία",
|
||||
|
|
@ -708,6 +726,7 @@
|
|||
"copyCodeConfirmText": "Ο κωδικός αντιγράφηκε στο πρόχειρο.",
|
||||
"copyCodeText": "Αντιγράψτε τον κωδικό",
|
||||
"dedicatedServerInfoText": "Για καλύτερα αποτελέσματα, οργανώστε έναν σταθερό διακομιστή. Βλέπε bombsquadgame.com/server.",
|
||||
"descriptionShortText": "Χρησιμοποιήστε το παράθυρο συγκέντρωσης για να φτιάξετε ένα πάρτυ.",
|
||||
"disconnectClientsText": "Συνεχίζοντας θα αποσυνδεθούν ${COUNT} παίκης/ες\nαπο τη συγκέντρωσή σας. Είστε σίγουροι?",
|
||||
"earnTicketsForRecommendingAmountText": "Οι φίλοι σας θα λάβουν ${COUNT} εισητήρια αν δοκιμάσουν το παιχνίδι\n(και εσείς θα λάβετε ${YOU_COUNT} για τον καθένα)",
|
||||
"earnTicketsForRecommendingText": "Μοιραστείτε το παιχνίδι\nγια δωρεάν εισητήρια...",
|
||||
|
|
@ -720,10 +739,10 @@
|
|||
"friendHasSentPromoCodeText": "${COUNT} εισητήρια ${APP_NAME} από ${NAME}",
|
||||
"friendPromoCodeAwardText": "Θα λάμβάνετε από ${COUNT} εισητήρια για κάθε χρήση.",
|
||||
"friendPromoCodeExpireText": "Αυτός ο κωδικός λήγει σε ${EXPIRE_HOURS} ώρες και λειτουργεί μόνο για νέα μέλη.",
|
||||
"friendPromoCodeInstructionsText": "Για να το αξιοποιήσετε, ανοίξτε το ${APP_NAME} και ακολουθήστε το \"Ρυθμίσεις->Σύνθετες->Εισαγωγή Κωδικού\".\nΒλέπε bombsquadgame.com για συνδέσμους της εφαρμογής σε όλες τις υποστηριζόμενες πλατφόρμες.",
|
||||
"friendPromoCodeInstructionsText": "Για να το αξιοποιήσετε, ανοίξτε το ${APP_NAME} και ακολουθήστε το \"Ρυθμίσεις->Σύνθετες->Αποστολή Πληροφοριών\".\nΒλέπε bombsquadgame.com για συνδέσμους της εφαρμογής σε όλες τις υποστηριζόμενες πλατφόρμες.",
|
||||
"friendPromoCodeRedeemLongText": "Μπορεί να εξαργυρωθεί για ${COUNT} δωρεάν εισητήρια από έως ${MAX_USES} άτομα.",
|
||||
"friendPromoCodeRedeemShortText": "Μπορεί να εξαργυρωθεί για ${COUNT} εισητήρια στο παιχνίδι.",
|
||||
"friendPromoCodeWhereToEnterText": "(στο \"Ρυθμίσεις->Σύνθετες->Εισαγωγή Κωδικού\")",
|
||||
"friendPromoCodeWhereToEnterText": "(στο \"Ρυθμίσεις->Σύνθετες->Αποστολή Πληροφοριών\")",
|
||||
"getFriendInviteCodeText": "Αποκτήστε Κωδικό Πρόσκλησης Φίλων",
|
||||
"googlePlayDescriptionText": "Προσκάλεσε Google Play παίκτες στη συγκέντρωσή σας:",
|
||||
"googlePlayInviteText": "Πρόσκληση",
|
||||
|
|
@ -819,6 +838,12 @@
|
|||
"youHaveShortText": "έχετε ${COUNT}",
|
||||
"youHaveText": "έχετε ${COUNT} εισιτήρια"
|
||||
},
|
||||
"goldPass": {
|
||||
"desc1InfTokensText": "Άπειρα κέρματα.",
|
||||
"desc2NoAdsText": "Καθόλου διαφημίσεις.",
|
||||
"desc3ForeverText": "Για πάντα.",
|
||||
"goldPassText": "Χρυσό Πάσο"
|
||||
},
|
||||
"googleMultiplayerDiscontinuedText": "Συγνώμη, φαίνεται πως η υπηρεσία πολλών παικτών της Google δεν είναι πλέον διαθέσιμη.\nΠροσπαθώ να βρω αντικατάσταση όσο πιο γρήγορα γίνεται.\nΜέχρι τότε, παρακαλώ δοκιμάστε άλλο τρόπο σύνδεσης.\n-Eric",
|
||||
"googlePlayPurchasesNotAvailableText": "Οι αγορές Google Play δεν είναι διαθέσιμες.\nΜπορεί να χρειάζεται να ενημερώσετε την εφαρμογή σας.",
|
||||
"googlePlayServicesNotAvailableText": "Οι υπηρεσίες Google Play δεν είναι διαθέσιμες.\nΚάποιες λειτουργείες μπορεί να είναι απενεργοποιμένες.",
|
||||
|
|
@ -897,6 +922,7 @@
|
|||
"importText": "Εισαγωγή",
|
||||
"importingText": "Εισαγωγή...",
|
||||
"inGameClippedNameText": "θα εμφανίζεται ως\n\"${NAME}\"",
|
||||
"inboxText": "Εισερχόμενα",
|
||||
"installDiskSpaceErrorText": "ΣΦΑΛΜΑ: Αδύνατη η ολοκλήρωση της εγκατάστασης.\nΕνδέχεται να ξεμείνατε από αποθηκευτικό χώρο στη\nσυσκεύη. Αδειάστε λίγο χώρο και ξαναπροσπαθήστε.",
|
||||
"internal": {
|
||||
"arrowsToExitListText": "πατήστε ${LEFT} ή ${RIGHT} για έξοδο από τη λίστα",
|
||||
|
|
@ -951,12 +977,14 @@
|
|||
"timeOutText": "(ο χρόνος λήγει σε ${TIME} δευτερόλεπτα)",
|
||||
"touchScreenJoinWarningText": "Έχετε ενταχθεί με την οθόνη αφής.\nΑν συνέβη καταλάθος πατήστε με αυτή στο 'Μενού->Έξοδος Παιχνιδιού'.",
|
||||
"touchScreenText": "Οθόνη Αφής",
|
||||
"unableToCompleteTryAgainText": "Δεν μπορεί να ολοκληρωθεί αυτό τώρα.\nΠαρακαλώ προσαπθήστε ξανά.",
|
||||
"unableToResolveHostText": "Σφάλμα: αδύνατη η επίλυση του οικοδεσπότη.",
|
||||
"unavailableNoConnectionText": "Αυτό είναι προς το παρόν μη διαθέσιμο (χωρίς πρόσβαση στο διαδίκτυο;)",
|
||||
"vrOrientationResetCardboardText": "Χρησιμοποιήστε το για την επαναφορά το προσανατολισμού VR.\nΓια να παίξετε το παιχνίδι θα χρειαστείτε ένα εξωτερικό χειριστήριο.",
|
||||
"vrOrientationResetText": "Έγινε επαναφορά του VR προσανατολισμού.",
|
||||
"willTimeOutText": "(θα σταματήσει αν παραμείνει αδρανής)"
|
||||
},
|
||||
"inventoryText": "Αποθήκη",
|
||||
"jumpBoldText": "ΑΛΜΑ",
|
||||
"jumpText": "Άλμα",
|
||||
"keepText": "Κράτησέ τες",
|
||||
|
|
@ -1003,8 +1031,11 @@
|
|||
"seasonEndsMinutesText": "Η σεζόν λήγει σε ${NUMBER} λεπτά.",
|
||||
"seasonText": "Σεζόν ${NUMBER}",
|
||||
"tournamentLeagueText": "Πρέπει να φτάσετε στην κατηγορία ${NAME} για να συμμετάσχετε σε αυτό το τουρνουά.",
|
||||
"trophyCountsResetText": "Ο αριθμός των βραβείων θα υποστεί επαναφορά στην επόμενη σεζόν."
|
||||
"trophyCountsResetText": "Ο αριθμός των βραβείων θα υποστεί επαναφορά στην επόμενη σεζόν.",
|
||||
"upToDateBonusDescriptionText": "Οι παίκτες που τρέχουν μία πρόσφατη έκδοση του παιχνιδιού\nλαμβάνουν ένα μπόνους ${PERCENT}% εδώ.",
|
||||
"upToDateBonusText": "Μπόνους εκσυγχρονισμού"
|
||||
},
|
||||
"learnMoreText": "Μάθετε Περισσότερα",
|
||||
"levelBestScoresText": "Οι υψηλότερες βαθμολογίες στο επίπεδο ${LEVEL}",
|
||||
"levelBestTimesText": "Οι καλύτεροι χρόνοι στο επίπεδο ${LEVEL}",
|
||||
"levelIsLockedText": "Το επίπεδο ${LEVEL} είναι κλειδωμένο.",
|
||||
|
|
@ -1048,6 +1079,8 @@
|
|||
"modeArcadeText": "Λειτουργία \"Arcade\"",
|
||||
"modeClassicText": "Κλασσική λειτουργία",
|
||||
"modeDemoText": "Δοκιμαστική λειτουργία",
|
||||
"moreSoonText": "Περισσότερα έρχονται σύντομα...",
|
||||
"mostDestroyedPlayerText": "Πιο Κατεστραμμένος",
|
||||
"mostValuablePlayerText": "Πολυτιμότερος Παίκτης",
|
||||
"mostViolatedPlayerText": "Πιο Ξυλοδαρμένος Παίκτης",
|
||||
"mostViolentPlayerText": "Πιο Βίαιος Παίκτης",
|
||||
|
|
@ -1255,6 +1288,7 @@
|
|||
},
|
||||
"scoreWasText": "(ήταν ${COUNT})",
|
||||
"selectText": "Επιλογή",
|
||||
"sendInfoDescriptionText": "Στέλνει πληροφορίες λογαριασμού και κατάστασης εφαρμογής στον δημιουργό.\nΠαρακαλούμε να συμπεριλάβετε το όνομά σας ή την αιτία αποστολής.",
|
||||
"seriesWinLine1PlayerText": "ΚΕΡΔΙΣΕ ΤΗ",
|
||||
"seriesWinLine1TeamText": "ΚΕΡΔΙΣΕ ΤΗ",
|
||||
"seriesWinLine1Text": "ΚΕΡΔΙΣΕ ΤΗ",
|
||||
|
|
@ -1270,8 +1304,9 @@
|
|||
},
|
||||
"settingsWindowAdvanced": {
|
||||
"alwaysUseInternalKeyboardDescriptionText": "(ένα απλό, φιλικό με τα χειριστήρια πληκτρολόγιο οθόνης για επεξεργασία κειμένου)",
|
||||
"alwaysUseInternalKeyboardText": "Πάντα να Χρησιμοποιείται το Εσωτερικό Πληκτρολόγιο",
|
||||
"alwaysUseInternalKeyboardText": "Πάντα να χρησιμοποιείται το εσωτερικό πληκτρολόγιο",
|
||||
"benchmarksText": "Έλεγχοι Απόδοσης & Κόπωσης",
|
||||
"devToolsText": "Εργαλεία Δημιουργού",
|
||||
"disableCameraGyroscopeMotionText": "Απενεργοποιήστε γυροσκοπική κίνηση της κάμερας",
|
||||
"disableCameraShakeText": "Απενεργοποιήστε το κούνημα της κάμερας",
|
||||
"disableThisNotice": "(μπορείτε να απενεργοποιήσετε αυτή τήν ειδοποίηση στις σύνθετες ρυθμίσεις)",
|
||||
|
|
@ -1280,7 +1315,7 @@
|
|||
"enterPromoCodeText": "Εισαγωγή Κωδικού",
|
||||
"forTestingText": "Σημείωση: αυτές οι τιμές είναι μονάχα για έλεγχο και θα χαθούν όταν πραγματοποιηθεί έξοδος από την εφαρμογή.",
|
||||
"helpTranslateText": "Οι μη Αγγλικές μεταφράσεις του ${APP_NAME} είναι υποστιριζόμενες\nαπό την κοινότητα. Αν θα θέλατε να συνεισφέρετε ή να διορθώσετε μια\nμετάφραση ακολουθήστε τον παρακάτω σύνδεσμο. Ευχαριστώ προκαταβολικά!",
|
||||
"kickIdlePlayersText": "Αποβολή Άπραγων Παικτών",
|
||||
"kickIdlePlayersText": "Αποβολή άπραγων παικτών",
|
||||
"kidFriendlyModeText": "Λειτουργία για Παιδιά (μειωμένη βία, κτλ)",
|
||||
"languageText": "Γλώσσα",
|
||||
"moddingGuideText": "Οδηγός Τροποποίησης",
|
||||
|
|
@ -1288,10 +1323,12 @@
|
|||
"mustRestartText": "Για να λειτουργήσει, πρέπει να επανεκκινήσετε το παιχνίδι.",
|
||||
"netTestingText": "Έλεγχος Δικτύου",
|
||||
"resetText": "Επαναφορά",
|
||||
"sendInfoText": "Αποστολή πληροφοριών",
|
||||
"showBombTrajectoriesText": "Εμφάνιση Πορείας Βόμβας",
|
||||
"showDemosWhenIdleText": "Προβολή Ντέμο Σε Αδράνεια",
|
||||
"showDevConsoleButtonText": "Εμφάνιση κονσόλας προγραμματιστών",
|
||||
"showInGamePingText": "Εμφάνιση Καθυστέρησης Εντός-Παιχνιδιού",
|
||||
"showDemosWhenIdleText": "Προβολή ντέμο σε αδράνεια",
|
||||
"showDeprecatedLoginTypesText": "Εμφάνιση καταργημένων τύπων εισόδου",
|
||||
"showDevConsoleButtonText": "Εμφάνιση κουμπιού κονσόλας προγραμματιστών",
|
||||
"showInGamePingText": "Εμφάνιση καθυστέρησης εντός-παιχνιδιού",
|
||||
"showPlayerNamesText": "Προβολή Ονομάτων Παικτών",
|
||||
"showUserModsText": "Προβολή Φακέλου Πακέτων Τροποποίησης",
|
||||
"titleText": "Σύνθετες",
|
||||
|
|
@ -1299,8 +1336,8 @@
|
|||
"translationFetchErrorText": "κατάσταση μεταφράσεων μη διαθέσιμη",
|
||||
"translationFetchingStatusText": "έλεγχος κατάστασης μεταφράσεων...",
|
||||
"translationInformMe": "Πληροφόρησέ με όταν η γλώσσα μου χρειάζεται ενημερώσεις",
|
||||
"translationNoUpdateNeededText": "η συγγεκριμμένη γλώσσα είναι ενημερωμένη, γιούπι!",
|
||||
"translationUpdateNeededText": "** η συγκεκριμένη γλώσσα χρειάζεται ενημερώσεις!! **",
|
||||
"translationNoUpdateNeededText": "Η συγκεκριμένη γλώσσα είναι ενημερωμένη, γιούπι!",
|
||||
"translationUpdateNeededText": "** Η συγκεκριμένη γλώσσα χρειάζεται ενημερώσεις!! **",
|
||||
"vrTestingText": "Έλεγχος VR"
|
||||
},
|
||||
"shareText": "Κοινοποίηση",
|
||||
|
|
|
|||
107
dist/ba_data/data/languages/hindi.json
vendored
107
dist/ba_data/data/languages/hindi.json
vendored
|
|
@ -7,7 +7,9 @@
|
|||
"campaignProgressText": "अभियान प्रगति [कठिन]: ${PROGRESS}",
|
||||
"changeOncePerSeason": "आप केवल प्रति सीजन इसे एक बार बदल सकते हैं।",
|
||||
"changeOncePerSeasonError": "आपको इसे फिर से बदलने के लिए अगले सीज़न तक इंतजार करना होगा (${NUM} दिन)",
|
||||
"createAnAccountText": "खाता बनाएं",
|
||||
"customName": "अनुकूल नाम",
|
||||
"deleteAccountText": "खाता हटा दो",
|
||||
"googlePlayGamesAccountSwitchText": "अगर आप किसी भिन्न Google खाते का उपयोग करना चाहते हैं,\n स्विच करने के लिए Google Play गेम्स ऐप का उपयोग करें।",
|
||||
"linkAccountsEnterCodeText": "कोड डालीए",
|
||||
"linkAccountsGenerateCodeText": "काेड उत्पन्न करे",
|
||||
|
|
@ -25,6 +27,7 @@
|
|||
"setAccountNameDesc": "अपने खाते के लिए प्रदर्शित करने के लिए नाम चुनें। \nआप अपने लिंक किए गए किसी एक से नाम का उपयोग कर सकते हैं \nखातों या अनन्य कस्टम नाम बनाएं",
|
||||
"signInInfoText": "सभी यंत्रों पर अपनी प्रगति को संग्रहीत करने के लिए, \nटिकट कमाने, टूर्नामेंट में प्रतिस्पर्धा करने के लिए साइन इन करें |",
|
||||
"signInText": "साइन इन",
|
||||
"signInWithAnEmailAddressText": "ईमेल पते से साइन इन करें",
|
||||
"signInWithDeviceInfoText": "(एक स्वचालित खता जिसका सिर्फ इस यंत्र से प्रयोग किया जा सकता है)",
|
||||
"signInWithDeviceText": "इस डिवाइस के साथ साइन इन करें",
|
||||
"signInWithGameCircleText": "Game circle के साथ प्रवेश करे",
|
||||
|
|
@ -33,7 +36,7 @@
|
|||
"signInWithTestAccountText": "परीक्षण के खाते से साइन इन करें",
|
||||
"signInWithText": "${SERVICE} से साइन इन करे।",
|
||||
"signInWithV2InfoText": "(एक खाता जो सभी प्लेटफार्मों पर काम करता है)",
|
||||
"signInWithV2Text": "BombSquad खाते से साइन इन करें",
|
||||
"signInWithV2Text": "${APP_NAME} खाते से साइन इन करें",
|
||||
"signOutText": "साइन आउट",
|
||||
"signingInText": "साइन इन हो रहा है...",
|
||||
"signingOutText": "साइन आउट हो रहा है...",
|
||||
|
|
@ -344,6 +347,8 @@
|
|||
"allowText": "अनुमति दें",
|
||||
"alreadySignedInText": "आपका खाता किसी अन्य डिवाइस से साइन किया गया है; \nकृपया खातों को स्विच करें या अपने गेम को अन्य डिवाइस \nपर बंद करें और फिर से प्रयास करें",
|
||||
"apiVersionErrorText": "${NAME} मौड्यूल लोड नहीं हो पाया ; यह एपीआई - संस्करण ${VERSION_USED} पे काम करने का प्रयास कर रहा है ; हमें संस्करण ${VERSION_REQUIRED} चाहिए |",
|
||||
"applyText": "अवदेना करे",
|
||||
"areYouSureText": "क्या आप निश्चित हो",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(\"स्वयं\" इसे तभी शुरू करेगा जब हैडफ़ोन लगें हों)",
|
||||
"headRelativeVRAudioText": "सर के सापेक्ष वीआर ध्वनि",
|
||||
|
|
@ -365,14 +370,23 @@
|
|||
"boostText": "प्रोत्साहन",
|
||||
"bsRemoteConfigureInAppText": "${REMOTE_APP_NAME} को एप्लीकेशन के अन्दर से ही कॉन्फ़िगर करें |",
|
||||
"buttonText": "बटन",
|
||||
"canWeDebugText": "क्या आप बोम्ब-स्क्वाड को अपने आप खराबियों व \nआधारभूत उपयोग कि जानकारी भेजना चाहते हैं ? \n\nइस जानकारी में कुछ भी व्यक्तिगत नहीं होता है व \nयह गेम को सुचारू रूप से बिना खराबियों के चलने में सहायता करता है |",
|
||||
"canWeDebugText": "क्या आप ${APP_NAME} को अपने आप खराबियों व \nआधारभूत उपयोग कि जानकारी भेजना चाहते हैं ? \n\nइस जानकारी में कुछ भी व्यक्तिगत नहीं होता है व \nयह गेम को सुचारू रूप से बिना खराबियों के चलने में सहायता करता है |",
|
||||
"cancelText": "रद्द करें",
|
||||
"cantConfigureDeviceText": "माफ़ करें ${DEVICE} कांफिग्युरेब्ल नहीं है |",
|
||||
"challengeEndedText": "यह चुनौती समाप्त हो चूकि हैं",
|
||||
"chatMuteText": "बातचीत मौन करें",
|
||||
"chatMutedText": "बातचीत मौन हो गई है",
|
||||
"chatUnMuteText": "बातचीत दोबारा शुरू करें",
|
||||
"chests": {
|
||||
"prizeOddsText": "पुरस्कार की संभावना",
|
||||
"reduceWaitText": "इंतज़ार कम करें",
|
||||
"slotDescriptionText": "यह स्लॉट एक संदूक रख सकता है।\n\nअभियान स्तर खेलकर चेस्ट अर्जित करें,\nटूर्नामेंट में जगह बनाना, और पूरा करना\nउपलब्धियाँ.",
|
||||
"slotText": "चेस्ट स्लॉट ${NUM}",
|
||||
"slotsFullWarningText": "चेतावनी: आपके सभी चेस्ट स्लॉट भरे हुए हैं।\nइस गेम में आप जो भी चेस्ट अर्जित करेंगे वह खो जाएगा।",
|
||||
"unlocksInText": "में अनलॉक करता है"
|
||||
},
|
||||
"choosingPlayerText": "<खिलाड़ी चुना जा रहा है>",
|
||||
"claimText": "दावा",
|
||||
"codesExplainText": "खाता समस्याओं के निदान और सुधार के लिए डेवलपर \nद्वारा कोड प्रदान किए जाते हैं ।",
|
||||
"completeThisLevelToProceedText": "आपको यह पड़ाव पार करना पड़ेगा आगे बढ़ने के लिए !",
|
||||
"completionBonusText": "पूर्णता पुरस्कार",
|
||||
|
|
@ -569,6 +583,7 @@
|
|||
"disableXInputDescriptionText": "4 नियंत्रकों से अधिक की अनुमति देता है लेकिन साथ ही साथ काम नहीं कर सकते",
|
||||
"disableXInputText": "Xinput अक्षम करें",
|
||||
"disabledText": "डिसेबल्ड",
|
||||
"discardText": "खारिज करना",
|
||||
"discordFriendsText": "क्या आप खेलने के लिए नए लोगों की तलाश करना चाहते हैं? \n हमारे डिस्कोर्ड में शामिल हों और नए दोस्त खोजें!",
|
||||
"discordJoinText": "डिस्कोर्ड में शामिल हों",
|
||||
"doneText": "हो गया",
|
||||
|
|
@ -652,6 +667,8 @@
|
|||
"errorText": "त्रुटी",
|
||||
"errorUnknownText": "अज्ञात त्रुटी",
|
||||
"exitGameText": "${APP_NAME} से निकास करें ?",
|
||||
"expiredAgoText": "${T} पहले समाप्त हो गया",
|
||||
"expiresInText": "${T} में समाप्त होता है",
|
||||
"exportSuccessText": "'${NAME}' निर्यात हुआ",
|
||||
"externalStorageText": "बाहरी संचयन",
|
||||
"failText": "असफल",
|
||||
|
|
@ -687,6 +704,7 @@
|
|||
"editText": "प्लेलिस्ट को \nसंपादित करें",
|
||||
"newText": "नयी \nप्लेलिस्ट",
|
||||
"pointsToWinText": "पौइनटस जीतने के लिए",
|
||||
"seriesLengthText": "श्रृंखला की लंबाई",
|
||||
"showTutorialText": "ट्युटोरियल दिखाएँ",
|
||||
"shuffleGameOrderText": "गेम के क्रमांक को मिलाएं",
|
||||
"titleText": "${TYPE} प्लेलिस्ट को अपने हिसाब से बदलें"
|
||||
|
|
@ -713,6 +731,7 @@
|
|||
"copyCodeConfirmText": "कोड को क्लिपबोर्ड पर कॉपी किया गया है",
|
||||
"copyCodeText": "कोड को कॉपी करें",
|
||||
"dedicatedServerInfoText": "श्रेष्ठ परिणामों के लिए, एक समर्पित सर्वर सेट करें. कैसे जानने के लिए bombsquadgame.com/server देखें.",
|
||||
"descriptionShortText": "किसी पार्टी को इकट्ठा करने के लिए एकत्रित विंडो का उपयोग करें।",
|
||||
"disconnectClientsText": "यह आपके पार्टी में ${COUNT} \nखिलाड़ियों का सम्बन्ध तोड़ देगा",
|
||||
"earnTicketsForRecommendingAmountText": "यदि वे गेम को आज़माते हैं तो दोस्तों को ${COUNT} \nटिकट मिलेंगे (और आप प्रत्येक के लिए ${YOU_COUNT} प्राप्त करेंगे)",
|
||||
"earnTicketsForRecommendingText": "मुफ्त के टिकेट \nके लिए गेम को बाटें...",
|
||||
|
|
@ -725,10 +744,10 @@
|
|||
"friendHasSentPromoCodeText": "${COUNT} ${APP_NAME} टिकेट मिले ${NAME} से",
|
||||
"friendPromoCodeAwardText": "आपको ${COUNT} टिकेट मिलेंगे हर बार इसका प्रयोग किया जाता है",
|
||||
"friendPromoCodeExpireText": "आपका कोड सिर्क नयें खिलाड़ियों के लिए चलेगा और ${EXPIRE_HOURS} घंटों के बाद काम करना बंद कर देगा",
|
||||
"friendPromoCodeInstructionsText": "इसका प्रयोग करने के लिए, ${APP_NAME} खोले और फिर \"सेटिंग->उन्नत सेटिंग->कोड डालें\" में जाएँ \nअधिक जानकारी के लिए bombsquadgame.com व डाउनलोड करने के लिए पे जाएँ |",
|
||||
"friendPromoCodeInstructionsText": "इसका उपयोग करने के लिए, ${APP_NAME} खोलें और \"सेटिंग्स->उन्नत->जानकारी भेजें\" पर जाएँ।\nसभी समर्थित प्लेटफ़ॉर्म के लिए डाउनलोड लिंक के लिए bombsquadgame.com देखें।",
|
||||
"friendPromoCodeRedeemLongText": "यह ${COUNT} मुफ्त के टिकेट के लिए प्रयोग किया जा सकता है अधकतम ${MAX_USES} लोगों के द्वारा |",
|
||||
"friendPromoCodeRedeemShortText": "यह ${COUNT} मुफ्त के टिकेट के लिए प्रयोग किया जा सकता है गेम के अन्दर |",
|
||||
"friendPromoCodeWhereToEnterText": "(\"सेटिंग->उन्नत सेटिंग->कोड डालें\" में जाएँ )",
|
||||
"friendPromoCodeWhereToEnterText": "(\"सेटिंग्स->उन्नत->जानकारी भेजें\" में)",
|
||||
"getFriendInviteCodeText": "दोस्त आमंत्रण कोड पायें",
|
||||
"googlePlayDescriptionText": "गूगल प्ले के खिलाड़ियों को अपनी पार्टी में आमंत्रण दें:",
|
||||
"googlePlayInviteText": "आमंत्रण दें",
|
||||
|
|
@ -825,6 +844,12 @@
|
|||
"youHaveShortText": "आपके पास ${COUNT} हैं",
|
||||
"youHaveText": "आपके पास ${COUNT} टिकेट हैं"
|
||||
},
|
||||
"goldPass": {
|
||||
"desc1InfTokensText": "अनगिनत टोकन.",
|
||||
"desc2NoAdsText": "कोई विज्ञापन नहीं.",
|
||||
"desc3ForeverText": "हमेशा के लिए.",
|
||||
"goldPassText": "गोल्ड पास"
|
||||
},
|
||||
"googleMultiplayerDiscontinuedText": "क्षमा करें, गूगल की एक साथ खेलने की सेवा अब उपलब्ध नहीं है। \nमैं जितनी जल्दी हो सके एक प्रतिस्थापन पर काम कर रहा हूं।\nतब तक, कृपया दूसरी जुडने की विधि आज़माएँ। \n-Eric",
|
||||
"googlePlayPurchasesNotAvailableText": "गूगल प्ले से ख़रीदारी उपलब्ध नहीं हैं।\nआपको अपना स्टोर ऐप अपडेट करना पड़ सकता है।",
|
||||
"googlePlayServicesNotAvailableText": "गूगल प्ले सर्विसेज उपलब्ध नहीं है।\nऐप की कुछ कार्यक्षमता अक्षम हो सकती है।",
|
||||
|
|
@ -899,6 +924,7 @@
|
|||
"importText": "आयात करें",
|
||||
"importingText": "आयात कर रहा है...",
|
||||
"inGameClippedNameText": "खेल में होगा \n\"${NAME}\"",
|
||||
"inboxText": "इनबॉक्स",
|
||||
"installDiskSpaceErrorText": "त्रुटी: इनस्टॉल ख़तम नहीं कर पाया | \nआपके यंत्र पे जगह ख़तम हो सकती है | \nजगह खली कर के फिर से प्रयास करें |",
|
||||
"internal": {
|
||||
"arrowsToExitListText": "सूचि से बाहर निकलने केलिए ${LEFT} या ${RIGHT} दबाएँ",
|
||||
|
|
@ -953,12 +979,14 @@
|
|||
"timeOutText": "(समय ख़तम होने में ${TIME} सेकंड)",
|
||||
"touchScreenJoinWarningText": "आपने टच स्क्रीन से जोड़ा है | \nअगर यह गलती से हुआ है तो 'मेनू -> गेम छोड़ें' से बाहर निकल जाएँ |",
|
||||
"touchScreenText": "टच स्क्रीन",
|
||||
"unableToCompleteTryAgainText": "इसे अभी पूरा करने में असमर्थ।\nकृपया पुन: प्रयास करें।",
|
||||
"unableToResolveHostText": "त्रुटि: होस्ट को हल करने में असमर्थ हैं।",
|
||||
"unavailableNoConnectionText": "यह अभी उपलब्ध नहीं है | (इन्टरनेट कनेक्शन है ना ?)",
|
||||
"vrOrientationResetCardboardText": "वी-आर अनुस्थापन रिसेट करने के लिए इसका प्रयोग करें | \nगेम खेलने के लिए आपको एक बाहरी नियंत्रक चाहिए होगा |",
|
||||
"vrOrientationResetText": "वी-आर अनुस्थापन रिसेट",
|
||||
"willTimeOutText": "(समय ख़तम हो जायेगा अगर आलसी रहेंगे)"
|
||||
},
|
||||
"inventoryText": "भंडार",
|
||||
"jumpBoldText": "कूदें",
|
||||
"jumpText": "कूदें",
|
||||
"keepText": "रखें",
|
||||
|
|
@ -1005,8 +1033,11 @@
|
|||
"seasonEndsMinutesText": "सीज़न ख़तम होगा ${NUMBER} मिनटों में |",
|
||||
"seasonText": "सीज़न संख्या ${NUMBER}",
|
||||
"tournamentLeagueText": "इस प्रतियोगिता में हिस्सा लेने के लिए आपको ${NAME} संघ तक पहले पहुंचना होगा",
|
||||
"trophyCountsResetText": "ट्रॉफी कि संख्या अगले सीज़न में रिसेट हो जायेगी"
|
||||
"trophyCountsResetText": "ट्रॉफी कि संख्या अगले सीज़न में रिसेट हो जायेगी",
|
||||
"upToDateBonusDescriptionText": "खिलाड़ी इसका नवीनतम संस्करण चला रहे हैं\nगेम को यहां ${PERCENT}% बोनस प्राप्त होता है।",
|
||||
"upToDateBonusText": "नवीनतम बोनस"
|
||||
},
|
||||
"learnMoreText": "और अधिक जानें",
|
||||
"levelBestScoresText": "${LEVEL} पर सर्वश्रेष्ठ स्कोर",
|
||||
"levelBestTimesText": "${LEVEL} पर सबसे अच्छे समय",
|
||||
"levelFastestTimesText": "सबसे तेज़ ${LEVEL} स्तर पे",
|
||||
|
|
@ -1052,6 +1083,8 @@
|
|||
"modeArcadeText": "आर्केड मोड",
|
||||
"modeClassicText": "क्लासिक मोड",
|
||||
"modeDemoText": "डेमो मोड",
|
||||
"moreSoonText": "और अधिक जल्द ही आ रहा है...",
|
||||
"mostDestroyedPlayerText": "सर्वाधिक नष्ट खिलाड़ी",
|
||||
"mostValuablePlayerText": "सबसे ज्यादा कीमती खिलाड़ी",
|
||||
"mostViolatedPlayerText": "सबसे ज्यादा उल्लंघित खिलाड़ी",
|
||||
"mostViolentPlayerText": "सबसे ज्यादा हिंसात्मक खिलाड़ी",
|
||||
|
|
@ -1068,6 +1101,7 @@
|
|||
"nameSuicideText": "${NAME} ने आत्म-हत्या कर ली |",
|
||||
"nameText": "नाम",
|
||||
"nativeText": "मूलभूत",
|
||||
"newExclaimText": "ताज़ा!",
|
||||
"newPersonalBestText": "नया निजी उत्तम अंक !",
|
||||
"newTestBuildAvailableText": "एक नया परीक्षा का संस्करण उपलब्ध है ! \n(${VERSION} बिल्ड ${BUILD}). इसे ${ADDRESS} से पायें |",
|
||||
"newText": "नया",
|
||||
|
|
@ -1078,6 +1112,7 @@
|
|||
"noContinuesText": "(कोई जारी रखना नहीं)",
|
||||
"noExternalStorageErrorText": "कोई बाहरी संचयन करने कि जगह नहीं मिली",
|
||||
"noGameCircleText": "त्रुटी: गेम-सर्किल में लॉग-इन नहीं हैं |",
|
||||
"noMessagesText": "कोई संदेश नहीं.",
|
||||
"noPluginsInstalledText": "कोई प्लगइन इंस्टॉल नहीं है",
|
||||
"noProfilesErrorText": "आपकी कोई खिलाड़ी पार्श्वचित्र नहीं है, इसलिए आप '${NAME}' नाम के साथ फंसे हैं |\nसेटिंग -> खिलाड़ी पार्श्वचित्र में जाके अपने लिए पार्श्वचित्र बनायें |",
|
||||
"noScoresYetText": "अभी तक कोई स्कोर नहीं है |",
|
||||
|
|
@ -1087,6 +1122,7 @@
|
|||
"noValidMapsErrorText": "इस गेम ढंग के लिए कोई नक्शा नहीं मिला",
|
||||
"notEnoughPlayersRemainingText": "पर्याप्त खिलाड़ी बाकी नहीं हैं; बंद कर के नया गेम शुरू करें |",
|
||||
"notEnoughPlayersText": "आपको कम से कम ${COUNT} खिलाड़ी चाहिए गेम शुरू करने के लिए !",
|
||||
"notEnoughTicketsText": "पर्याप्त टिकट नहीं!",
|
||||
"notNowText": "अभी नहीं",
|
||||
"notSignedInErrorText": "यह करने के लिए आपको अपने खाते में साइन इन करना पड़ेगा",
|
||||
"notSignedInGooglePlayErrorText": "आपको गूगल प्ले से साइन इन करना पड़ेगा यह करने के लिए |",
|
||||
|
|
@ -1099,6 +1135,9 @@
|
|||
"onText": "चालू करें",
|
||||
"oneMomentText": "एक क्षण...",
|
||||
"onslaughtRespawnText": "${PLAYER} फिर से जिन्दा होगा लहर ${WAVE} में",
|
||||
"openMeText": "मुझे खोलो!",
|
||||
"openNowText": "अभी खोलें",
|
||||
"openText": "खुला",
|
||||
"orText": "${A} या ${B}",
|
||||
"otherText": "अन्य",
|
||||
"outOfText": "(${ALL} में से #${RANK})",
|
||||
|
|
@ -1185,6 +1224,8 @@
|
|||
"punchText": "मुक्का",
|
||||
"purchaseForText": "${PRICE} के भाव पे खरीदें",
|
||||
"purchaseGameText": "गेम खरीदें",
|
||||
"purchaseNeverAvailableText": "क्षमा करें, इस बिल्ड पर खरीदारी उपलब्ध नहीं है।\nकिसी अन्य प्लेटफ़ॉर्म पर अपने खाते में साइन इन करने और वहां से खरीदारी करने का प्रयास करें।",
|
||||
"purchaseNotAvailableText": "यह ख़रीदना संभव नहीं है|",
|
||||
"purchasingText": "खरीद रहे हैं...",
|
||||
"quitGameText": "${APP_NAME} को बंद कर दें ?",
|
||||
"quittingIn5SecondsText": "५ सेकंड में बंद कर रहे हैं...",
|
||||
|
|
@ -1226,6 +1267,7 @@
|
|||
"version_mismatch": "संस्करण मेल नहीं खा रहे हैं | \nयह सुनिश्चित कर लें कि बोम्ब-स्क्वाड गेम और \nरिमोट पर नवीनतम संस्करण है और पुनः प्रयास करें |"
|
||||
},
|
||||
"removeInGameAdsText": "${PRO} को भंडार में खरीदें गेम के बीच आने वाले एड्स को हटाने के लिए |",
|
||||
"removeInGameAdsTokenPurchaseText": "सीमित समय की पेशकश: इन-गेम विज्ञापनों को हटाने के लिए कोई भी टोकन पैक खरीदें।",
|
||||
"renameText": "नाम बदलें",
|
||||
"replayEndText": "रीप्ले बंद करें",
|
||||
"replayNameDefaultText": "आखिरी गेम का रीप्ले",
|
||||
|
|
@ -1277,6 +1319,7 @@
|
|||
"alwaysUseInternalKeyboardDescriptionText": "(एक साधारण, नियंत्रक से आसानी इ प्रयोग हो जाने वाला कीबोर्ड)",
|
||||
"alwaysUseInternalKeyboardText": "हमेशा गेम के कीबोर्ड का प्रयोग करें",
|
||||
"benchmarksText": "बेंचमार्क व तनाव परीक्षण",
|
||||
"devToolsText": "देव उपकरण",
|
||||
"disableCameraGyroscopeMotionText": "कैमरा गायरोस्कोप गतिवान बंद करे",
|
||||
"disableCameraShakeText": "कैमरा की हलचल बंद करे",
|
||||
"disableThisNotice": "(आप उन्नत सेटिंग में इस नोटिस को अक्षम कर सकते हैं)",
|
||||
|
|
@ -1285,6 +1328,8 @@
|
|||
"enterPromoCodeText": "कोड डालें",
|
||||
"forTestingText": "टिपण्णी: यह संख्याएं सिर्फ परीक्षण के लिए हैं, और एप्लीकेशन के बंद होने पर खो जायेंगी |",
|
||||
"helpTranslateText": "${APP_NAME} के अनुवाद एक सामुदायिक प्रयास का परिणाम हैं | \nअगर आप इसमें अपना योगदान देना चाहते हैं \nया कुछ ठीक करना चाहते हैं तो निचे दी गयी लिंक को देखें | धन्यवाद !",
|
||||
"insecureConnectionsDescriptionText": "अनुशंसित नहीं है,\nलेकिन प्रतिबंधित देशों या नेटवर्कों से ऑनलाइन खिलाड़ियों को अनुमति दे सकता है है",
|
||||
"insecureConnectionsText": "असुरक्षित कनेक्शन का उपयोग करें",
|
||||
"kickIdlePlayersText": "निष्क्रिय खिलाडियों को बाहर निकाल दें",
|
||||
"kidFriendlyModeText": "बच्चों के अनुकूल करें (कम हिंसा, आदि)",
|
||||
"languageText": "भाषा",
|
||||
|
|
@ -1296,6 +1341,7 @@
|
|||
"sendInfoText": "खबर बेजिए",
|
||||
"showBombTrajectoriesText": "बोम्ब का पथ दिखाएँ",
|
||||
"showDemosWhenIdleText": "निष्क्रिय होने पर डेमो दिखाएं",
|
||||
"showDeprecatedLoginTypesText": "अप्रचलित लॉगिन प्रकार दिखाएँ",
|
||||
"showDevConsoleButtonText": "डेव कंसोल बटन दिखाएँ",
|
||||
"showInGamePingText": "गेम पिंग में दिखाएं",
|
||||
"showPlayerNamesText": "खिलाड़ी का नाम दिखाएँ",
|
||||
|
|
@ -1344,6 +1390,7 @@
|
|||
},
|
||||
"spaceKeyText": "स्पेस",
|
||||
"statsText": "स्टैट्स",
|
||||
"stopRemindingMeText": "मुझे याद दिलाना बंद करो",
|
||||
"storagePermissionAccessText": "इसमें संग्रहण एक्सेस की आवश्यकता है",
|
||||
"store": {
|
||||
"alreadyOwnText": "आपके पास ${NAME} पहले से ही है!",
|
||||
|
|
@ -1353,7 +1400,7 @@
|
|||
"charactersText": "पात्र",
|
||||
"comingSoonText": "जल्द आ रहा है...",
|
||||
"extrasText": "अतिरिक्त",
|
||||
"freeBombSquadProText": "बम्ब्सक्वाड अब नि:शुल्क है, लेकिन जब से आपने मूल रूप से इसे खरीदा था \nतब आप हैं बम्ब्सक्वाड प्रो उन्नयन और ${COUNT} टिकट आपको धन्यवाद के रूप में दिए जा रहे हैं। \nनई सुविधाओं का आनंद लें, और अपने समर्थन के लिए धन्यवाद! \n-एरिक",
|
||||
"freeBombSquadProText": "बम्ब्सक्वाड अब नि:शुल्क है, लेकिन जब से आपने मूल रूप से इसे खरीदा था \nतब आप हैं बम्ब्सक्वाड प्रो उन्नयन और ${COUNT} टिकट आपको धन्यवाद के रूप में दिए जा रहे हैं। \nनई सुविधाओं का आनंद लें, और अपने समर्थन के लिए धन्यवाद! \n-एरिक ",
|
||||
"holidaySpecialText": "छुट्टी विशेष",
|
||||
"howToSwitchCharactersText": "(पात्र असाइन और कस्टमाइज़ करने के लिए जाएं \"${SETTINGS} -> ${PLAYER_PROFILES}\" पर)",
|
||||
"howToUseIconsText": "(इन का उपयोग करने के लिए वैश्विक खिलाड़ी प्रोफाइल (खाता विंडो में) बनाएं)",
|
||||
|
|
@ -1402,6 +1449,7 @@
|
|||
"testBuildValidatedText": "परीक्षण निर्माण मान्य; आनंद लें!",
|
||||
"thankYouText": "आपके सहयोग के लिए धन्यवाद! खेल का लुफ्त उठाओ!!",
|
||||
"threeKillText": "तिहरा हत्या!!",
|
||||
"ticketsDescriptionText": "टिकटों का उपयोग पात्रों को अनलॉक करने के लिए किया जा सकता है,\nस्टोर में मानचित्र, मिनीगेम्स और बहुत कुछ।\n\nटिकट जीते गए चेस्ट में पाए जा सकते हैं\nअभियान, टूर्नामेंट और उपलब्धियाँ।",
|
||||
"timeBonusText": "समय बोनस",
|
||||
"timeElapsedText": "समय बीता",
|
||||
"timeExpiredText": "समय समाप्त",
|
||||
|
|
@ -1412,10 +1460,24 @@
|
|||
"tipText": "टिप",
|
||||
"titleText": "बमस्क्वाड",
|
||||
"titleVRText": "बमस्क्वाड व.र.",
|
||||
"tokens": {
|
||||
"getTokensText": "टोकन ले",
|
||||
"notEnoughTokensText": "पर्याप्त टोकन नहीं है!",
|
||||
"numTokensText": "${COUNT} टोकन",
|
||||
"openNowDescriptionText": "आपके पास पर्याप्त टोकन हैं\nइसे अभी खोलें - आप ऐसा नहीं करेंगे\nइंतजार करने की जरूरत है.",
|
||||
"shinyNewCurrencyText": "बॉम्बस्क्वाड की चमकदार नई मुद्रा।",
|
||||
"tokenPack1Text": "छोटा टोकन पैक",
|
||||
"tokenPack2Text": "मध्यम टोकन पैक",
|
||||
"tokenPack3Text": "बड़ा टोकन पैक",
|
||||
"tokenPack4Text": "जंबो टोकन पैक",
|
||||
"tokensDescriptionText": "चेस्ट अनलॉक को तेज़ करने के लिए टोकन का उपयोग किया जाता है\nऔर अन्य गेम और खाता सुविधाओं के लिए।\n\nआप गेम में टोकन जीत सकते हैं या उन्हें खरीद सकते हैं\nपैक्स में. या अनंत के लिए एक गोल्ड पास खरीदें\nटोकन और उनके बारे में फिर कभी नहीं सुनना।",
|
||||
"youHaveGoldPassText": "आपके पास गोल्ड पास है।\nसभी टोकन खरीद निःशुल्क हैं।\nआनंद ले!"
|
||||
},
|
||||
"topFriendsText": "अच्छे दोस्त",
|
||||
"tournamentCheckingStateText": "प्रतियोगिता की जांच हो रही है; कृपया प्रतीक्षा करें...",
|
||||
"tournamentEndedText": "यह प्रतियोगिता समाप्त हो गया है। एक नया जल्द ही शुरू होगा।",
|
||||
"tournamentEntryText": "प्रतियोगिता प्रवेश",
|
||||
"tournamentFinalStandingsText": "अंतिम स्थिति",
|
||||
"tournamentResultsRecentText": "हालिया प्रतियोगिता परिणाम",
|
||||
"tournamentStandingsText": "प्रतियोगिता स्टैंडिंग्स",
|
||||
"tournamentText": "प्रतियोगिता",
|
||||
|
|
@ -1471,6 +1533,18 @@
|
|||
"Uber Onslaught": "महा हमला",
|
||||
"Uber Runaround": "महा रनराउंड"
|
||||
},
|
||||
"displayItemNames": {
|
||||
"${C} Tickets": "${C} टिकट",
|
||||
"${C} Tokens": "${C} टोकन",
|
||||
"Chest": "छाती",
|
||||
"L1 Chest": "एल1 छाती",
|
||||
"L2 Chest": "एल2 छाती",
|
||||
"L3 Chest": "एल3 छाती",
|
||||
"L4 Chest": "एल4 छाती",
|
||||
"L5 Chest": "एल5 छाती",
|
||||
"L6 Chest": "एल6 छाती",
|
||||
"Unknown Chest": "अज्ञात छाती"
|
||||
},
|
||||
"gameDescriptions": {
|
||||
"Be the chosen one for a length of time to win.\nKill the chosen one to become it.": "जीतने के लिए लंबे समय तक चुने गए व्यक्ति बनें। \nइसे चुनने के लिए चुने हुए को मार डालो।",
|
||||
"Bomb as many targets as you can.": "जितना संभव हो उतने लक्ष्य पर बम मारें ।",
|
||||
|
|
@ -1575,6 +1649,7 @@
|
|||
"Korean": "कोरियाई",
|
||||
"Malay": "मलय",
|
||||
"Persian": "फ़ारसी",
|
||||
"PirateSpeak": "डाकू भाषा",
|
||||
"Polish": "पोलिश",
|
||||
"Portuguese": "पुर्तगाली",
|
||||
"Romanian": "रोमानियाई",
|
||||
|
|
@ -1646,6 +1721,7 @@
|
|||
"Cheating detected; scores and prizes suspended for ${COUNT} days.": "धोखाधड़ी का पता चला; स्कोर और पुरस्कार ${COUNT} दिनों के लिए निलंबित कर दिए गए हैं।",
|
||||
"Could not establish a secure connection.": "एक सुरक्षित कनेक्शन स्थापित नहीं कर सका।",
|
||||
"Daily maximum reached.": "दैनिक अधिकतम पहुंच गया।",
|
||||
"Daily sign-in reward": "दैनिक साइन-इन इनाम",
|
||||
"Entering tournament...": "टूर्नामेंट में प्रवेश ...",
|
||||
"Invalid code.": "अमान्य कोड।",
|
||||
"Invalid payment; purchase canceled.": "अमान्य भुगतान; खरीद रद्द।",
|
||||
|
|
@ -1655,11 +1731,14 @@
|
|||
"Item unlocked!": "सामग्री अनलॉक!",
|
||||
"LINKING DENIED. ${ACCOUNT} contains\nsignificant data that would ALL BE LOST.\nYou can link in the opposite order if you'd like\n(and lose THIS account's data instead)": "जुड़ाव अस्वीकृत। ${ACCOUNT} में महत्वपूर्ण डेटा शामिल है \nजो सभी खो जाएंगे। यदि आप चाहते हैं \nतो आप विपरीत क्रम में लिंक कर सकते हैं \n(और इसके बजाय इस खाते का डेटा खो दें)",
|
||||
"Link account ${ACCOUNT} to this account?\nAll existing data on ${ACCOUNT} will be lost.\nThis can not be undone. Are you sure?": "इस खाते में ${ACCOUNT} खाता लिंक करें? \n${ACCOUNT} पर मौजूद सभी डेटा खो जाएंगे। \nइसे असंपादित नहीं किया जा सकता है। क्या आपको यकीन है?",
|
||||
"Longer streaks lead to better rewards.": "लंबी स्ट्रीक्स से बेहतर पुरस्कार मिलते हैं।",
|
||||
"Max number of playlists reached.": "प्लेलिस्ट की अधिकतम संख्या तक पहुंच गई।",
|
||||
"Max number of profiles reached.": "प्रोफाइल की अधिकतम संख्या तक पहुंच गया।",
|
||||
"Maximum friend code rewards reached.": "अधिकतम मित्र कोड पुरस्कार पहुंचे।",
|
||||
"Message is too long.": "संदेश बहुत लंबा है।",
|
||||
"New tournament result!": "नया टूर्नामेंट परिणाम!",
|
||||
"No servers are available. Please try again soon.": "कोई सर्वर उपलब्ध नहीं हैं। कृपया शीघ्र ही पुन: प्रयास करें।",
|
||||
"No slots available. Free a slot and try again.": "कोई स्लॉट उपलब्ध नहीं है. एक स्लॉट खाली करें और पुनः प्रयास करें।",
|
||||
"Profile \"${NAME}\" upgraded successfully.": "प्रोफाइल \"${NAME}\" सफलतापूर्वक अपग्रेड किया गया।",
|
||||
"Profile could not be upgraded.": "प्रोफ़ाइल को अपग्रेड नहीं किया जा सका।",
|
||||
"Purchase successful!": "खरीद सफल!",
|
||||
|
|
@ -1669,7 +1748,9 @@
|
|||
"Sorry, this code has already been used.": "क्षमा करें, यह कोड पहले ही इस्तेमाल हो चुका है।",
|
||||
"Sorry, this code has expired.": "क्षमा करें, यह कोड समाप्त हो गया है।",
|
||||
"Sorry, this code only works for new accounts.": "क्षमा करें, यह कोड केवल नए खातों के लिए काम करता है।",
|
||||
"Sorry, this has expired.": "क्षमा करें, इसकी समय सीमा समाप्त हो गई है.",
|
||||
"Still searching for nearby servers; please try again soon.": "अभी भी आस-पास के सर्वर खोज रहे हैं; कृपया जल्द ही पुन: प्रयास करें।",
|
||||
"Streak: ${NUM} days": "स्ट्रीक: ${NUM} दिन",
|
||||
"Temporarily unavailable; please try again later.": "अस्थाई रूप से अनुपलब्ध; बाद में पुन: प्रयास करें।",
|
||||
"The tournament ended before you finished.": "टूर्नामेंट समाप्त होने से पहले समाप्त हो गया।",
|
||||
"This account cannot be unlinked for ${NUM} days.": "यह खाता ${NUM} दिनों के लिए अनलिंक नहीं किया जा सकता है।",
|
||||
|
|
@ -1680,19 +1761,28 @@
|
|||
"Tournaments require ${VERSION} or newer": "टूर्नामेंटों को ${VERSION} या नए की आवश्यकता होती है",
|
||||
"Unlink ${ACCOUNT} from this account?\nAll data on ${ACCOUNT} will be reset.\n(except for achievements in some cases)": "इस खाते से ${ACCOUNT} अनलिंक करें? ${ACCOUNT} \nपर मौजूद सभी डेटा रीसेट हो जाएंगे। \n(कुछ मामलों में उपलब्धियों को छोड़कर)",
|
||||
"WARNING: complaints of hacking have been issued against your account.\nAccounts found to be hacking will be banned. Please play fair.": "चेतावनी: आपके खाते के खिलाफ हैकिंग की शिकायतें जारी की गई हैं। \nहैकिंग के लिए पाए गए खातों पर प्रतिबंध लगा दिया जाएगा। कृपया ईमानदार से खेलें।",
|
||||
"Wait reduced!": "इंतज़ार कम हुआ!",
|
||||
"Warning: This version of the game is limited to old account data; things may appear missing or out of date.\nPlease upgrade to a newer version of the game to see your latest account data.": "चेतावनी: गेम का यह संस्करण पुराने खाता डेटा तक सीमित है; चीज़ें गुम या पुरानी लग सकती हैं।\nकृपया अपना नवीनतम खाता डेटा देखने के लिए गेम के नए संस्करण में अपग्रेड करें।",
|
||||
"Would you like to link your device account to this one?\n\nYour device account is ${ACCOUNT1}\nThis account is ${ACCOUNT2}\n\nThis will allow you to keep your existing progress.\nWarning: this cannot be undone!\n": "क्या आप अपने डिवाइस खाते को इस से लिंक करना चाहते हैं? \n\nआपका डिवाइस खाता ${ACCOUNT1} है \nयह खाता ${ACCOUNT2} है \n\nयह आपको अपनी मौजूदा प्रगति को रखने की अनुमति देगा। \nचेतावनी: इसे पूर्ववत नहीं किया जा सकता है",
|
||||
"You already own this!": "आप पहले से ही इसे खरीद चुके है!",
|
||||
"You can join in ${COUNT} seconds.": "आप ${COUNT} सेकंड में शामिल हो सकते हैं।",
|
||||
"You don't have enough tickets for this!": "आपके पास इसके लिए पर्याप्त टिकट नहीं हैं!",
|
||||
"You don't own that.": "आप उसका स्वामित्व नहीं रखते हैं।",
|
||||
"You got ${COUNT} tickets!": "आपको ${COUNT} टिकट मिल गए हैं!",
|
||||
"You got ${COUNT} tokens!": "आपको ${COUNT} टोकन मिल गए!",
|
||||
"You got a ${ITEM}!": "आपको ${ITEM} मिला है!",
|
||||
"You got a chest!": "तुम्हें एक संदूक मिल गया!",
|
||||
"You got an achievement reward!": "आपको एक उपलब्धि पुरस्कार मिला!",
|
||||
"You have been promoted to a new league; congratulations!": "आपको एक नए लीग में पदोन्नत किया गया है; बधाई!",
|
||||
"You lost a chest! (All your chest slots were full)": "आपने एक संदूक खो दिया! (आपके सभी चेस्ट स्लॉट भरे हुए थे)",
|
||||
"You must update the app to view this.": "इसे देखने के लिए आपको ऐप को अपडेट करना होगा।",
|
||||
"You must update to a newer version of the app to do this.": "ऐसा करने के लिए आपको ऐप के एक नए संस्करण में अपडेट करना होगा।",
|
||||
"You must update to the newest version of the game to do this.": "ऐसा करने के लिए आपको गेम के नवीनतम संस्करण में अपडेट करना होगा।",
|
||||
"You must wait a few seconds before entering a new code.": "नया कोड दर्ज करने से पहले आपको कुछ सेकंड इंतजार करना होगा।",
|
||||
"You placed #${RANK} in a tournament!": "आपने एक टूर्नामेंट में #${RANK} रखा!",
|
||||
"You ranked #${RANK} in the last tournament. Thanks for playing!": "आपने पिछले टूर्नामेंट में #${RANK} रैंक किया था। खेलने के लिए शुक्रिया!",
|
||||
"Your account was rejected. Are you signed in?": "आपका खाता अस्वीकृत कर दिया गया है। क्या आप हस्ताक्षरित हैं?",
|
||||
"Your ad views are not registering. Ad options will be limited for a while.": "आपके विज्ञापन दृश्य पंजीकृत नहीं हो रहे हैं. विज्ञापन विकल्प कुछ समय के लिए सीमित रहेंगे।",
|
||||
"Your copy of the game has been modified.\nPlease revert any changes and try again.": "खेल की आपकी प्रति संशोधित कर दी गई है। \nकृपया किसी भी बदलाव को वापस करें और पुनः प्रयास करें।",
|
||||
"Your friend code was used by ${ACCOUNT}": "आपका मित्र कोड ${ACCOUNT} द्वारा उपयोग किया गया था"
|
||||
},
|
||||
|
|
@ -1843,6 +1933,7 @@
|
|||
"twoKillText": "दोहरी हत्या",
|
||||
"uiScaleText": "यू आई सकेल",
|
||||
"unavailableText": "उपलब्ध नहीं",
|
||||
"unclaimedPrizesText": "आपके पास लावारिस पुरस्कार हैं!",
|
||||
"unconfiguredControllerDetectedText": "बिना विन्यास वाले नियंत्रक का पता चला:",
|
||||
"unlockThisInTheStoreText": "यह स्टोर में अनलॉक होना चाहिए।",
|
||||
"unlockThisProfilesText": "${NUM} प्रोफ़ाइल बनाने के लिए, आपको इसकी आवश्यकता है:",
|
||||
|
|
@ -1860,6 +1951,7 @@
|
|||
"usesExternalControllerText": "यह गेम इनपुट के लिए बाहरी नियंत्रक का उपयोग करता है।",
|
||||
"usingItunesText": "गाने के लिए संगीत ऐप का उपयोग कर रहे है ...",
|
||||
"v2AccountLinkingInfoText": "V2 खातों को लिंक करने के लिए, 'खाता प्रबंधित करें' बटन का उपयोग करें।",
|
||||
"v2AccountRequiredText": "इसके लिए V2 खाते की आवश्यकता है। अपना खाता अपग्रेड करें और पुनः प्रयास करें।",
|
||||
"validatingTestBuildText": "परीक्षण निर्माण मान्य ...",
|
||||
"viaText": "के जरिए",
|
||||
"victoryText": "विजय!",
|
||||
|
|
@ -1927,5 +2019,6 @@
|
|||
},
|
||||
"yesAllowText": "हाँ, आज्ञा दें",
|
||||
"yourBestScoresText": "आपका बेस्ट स्कोर।",
|
||||
"yourBestTimesText": "आपका सर्वोत्तम समय"
|
||||
"yourBestTimesText": "आपका सर्वोत्तम समय",
|
||||
"yourPrizeText": "आपका पुरस्कार:"
|
||||
}
|
||||
166
dist/ba_data/data/languages/hungarian.json
vendored
166
dist/ba_data/data/languages/hungarian.json
vendored
|
|
@ -3,17 +3,19 @@
|
|||
"accountNameRules": "A fiók neve nem tartalmazhat emojikat és más speciális karaktereket",
|
||||
"accountProfileText": "(Felhasználó profilok)",
|
||||
"accountsText": "Fiókok",
|
||||
"achievementProgressText": "Eredmènyek: ${COUNT} a(z) ${TOTAL}-ból/ből.",
|
||||
"achievementProgressText": "Eredmények: ${COUNT} a(z) ${TOTAL}-ból/ből.",
|
||||
"campaignProgressText": "Kampány haladás(nehéz mód): ${PROGRESS}",
|
||||
"changeOncePerSeason": "Ebben a szezonban ezt csak egyszer változtathatod meg.",
|
||||
"changeOncePerSeasonError": "Várj a következő szezonig, hogy ezt megint megváltoztasd (${NUM} nap)",
|
||||
"createAnAccountText": "Fiók létrehozása",
|
||||
"customName": "Egyedi név",
|
||||
"deleteAccountText": "Fiók Törlése",
|
||||
"deviceSpecificAccountText": "Csak erről az eszközről lehet elérni ezt a profilt: ${NAME}",
|
||||
"googlePlayGamesAccountSwitchText": "Ha másik Google fiókot használnál, használd a Google Játékok alkalmazást.",
|
||||
"linkAccountsEnterCodeText": "Írd Be A Kódot",
|
||||
"linkAccountsGenerateCodeText": "Kód Generálása",
|
||||
"linkAccountsInfoText": "(vidd át előrehaladásodat akár több eszközre is)",
|
||||
"linkAccountsInstructionsNewText": "Két fiók összekapcsolásához az első fiókon hozz létre egy kódot\nés írd be a második fiókba. Az adatok a\na második fiókon majd megosztják egymással.\n(Az első fiókból származó adatok elveszhetnek)\n\nÖsszesen akár ${COUNT} fiókot is összekapcsolhat.\n\nFONTOS:\nCsak a tulajdonodban lévő fiókokat kapcsold össze;\nHa összekapcsolsz egyet az egyik barátodéval, nem fogtok tudni egyszerre online játszani.",
|
||||
"linkAccountsInstructionsNewText": "Két fiók összekapcsolásához az első fiókon hozz létre egy kódot\nés írd be a második fiókba. Az adatok a\na második fiókon majd megosztják egymással.\n(Az első fiókból származó adatok elvesznek)\n\nÖsszesen akár ${COUNT} fiókot is összekapcsolhat.\n\nFONTOS:\nCsak a tulajdonodban lévő fiókokat kapcsold össze;\nHa összekapcsolsz egyet az egyik barátodéval, nem fogtok tudni egyszerre online játszani.",
|
||||
"linkAccountsInstructionsText": "Hogy párosíts két profilt, generálj egy kódot\naz egyiken majd írd be a kapott kódot a másikon.\nAz előrehaladás és a megvásárolt dolgok is párosításra kerülnek .\nÖsszesen ${COUNT} profilt tudsz összehangolni.\n\nFONTOS:Csak olyan profilt csatlakoztass ami a tiéd!\nHogyha profilt csatlakoztatsz a barátaiddal\nakkor nem fogsz tudni játszani azonos időben!\n\nLégy óvatos!Ezt a lépést nem lehet visszavonni!",
|
||||
"linkAccountsText": "Profilok Párosítása",
|
||||
"linkedAccountsText": "Párosított Profilok:",
|
||||
|
|
@ -22,11 +24,12 @@
|
|||
"resetProgressConfirmNoAchievementsText": "Ez visszaállítja a co-op haladásodat és \nhelyi legmagasabb pontszámaidat (de a jegyeidet nem). \nEz nem vissza vonható. Biztos vagy benne?",
|
||||
"resetProgressConfirmText": "Ez visszaállítja a co-op haladásodat,\nteljesítményeidet és helyi legmagasabb pontszámaidat\n(de a jegyeidet nem). Ez nem vissza vonható.\nBiztos vagy benne?",
|
||||
"resetProgressText": "Haladás visszaállítása",
|
||||
"setAccountName": "Állítsa be a fiók nevét",
|
||||
"setAccountName": "Állítsd be a fiók nevét",
|
||||
"setAccountNameDesc": "Válassza ki a megjeleníteni kívánt fiók nevét.\nHasználhatja a nevét az egyik kapcsoltól\nfiókokat, vagy egyedi egyedi nevet hozhat létre.",
|
||||
"signInInfoText": "Lépj be, hogy tudj jegyeket gyűjteni, online versenyezni\nés elérni az eredményeidet akár több eszközről is.",
|
||||
"signInText": "Bejelentkezés",
|
||||
"signInWithDeviceInfoText": "(Autómatikus fiók csak ezen az eszközön elérhető)",
|
||||
"signInWithAnEmailAddressText": "Jelentkezz be egy email címmel",
|
||||
"signInWithDeviceInfoText": "(Automatikus fiók csak ezen az eszközön elérhető)",
|
||||
"signInWithDeviceText": "Bejelentkezés az eszköz felhasználójával.",
|
||||
"signInWithGameCircleText": "Lépj be a Game Circle fiókodba",
|
||||
"signInWithGooglePlayText": "Belépés Google fiókkal",
|
||||
|
|
@ -34,7 +37,7 @@
|
|||
"signInWithTestAccountText": "Bejelentkezés teszt felhasználóval",
|
||||
"signInWithText": "Bejelentkezés ${SERVICE}-(v)al /-(v)el",
|
||||
"signInWithV2InfoText": "(egy fiók, amely minden platformon működik)",
|
||||
"signInWithV2Text": "Jelentkezz be BombSquad fiókkal",
|
||||
"signInWithV2Text": "Jelentkezzen be egy ${APP_NAME} fiókkal",
|
||||
"signOutText": "Kijelentkezés",
|
||||
"signingInText": "Bejelentkezés...",
|
||||
"signingOutText": "Kijelentkezés...",
|
||||
|
|
@ -47,7 +50,7 @@
|
|||
"unlinkAccountsText": "Fiókok leválasztása",
|
||||
"unlinkLegacyV1AccountsText": "(V1) fiókok lecsatolása",
|
||||
"v2LinkInstructionsText": "Használd ezt a linket fiók létrehozásához vagy bejelentkezéshez.",
|
||||
"viaAccount": "(számlán keresztül ${NAME})",
|
||||
"viaAccount": "(${NAME} fiókon keresztül )",
|
||||
"youAreSignedInAsText": "Eként vagy bejelentkezve:"
|
||||
},
|
||||
"achievementChallengesText": "Teljesítmény kihívások",
|
||||
|
|
@ -58,7 +61,7 @@
|
|||
"descriptionComplete": "Megöltél 3 rosszfiút TNT-vel",
|
||||
"descriptionFull": "Ölj meg 3 rosszfiút TNT-vel a(z) ${LEVEL}-n",
|
||||
"descriptionFullComplete": "Megöltél 3 rosszfiút TNT-vel a(z) ${LEVEL}-n",
|
||||
"name": "Bumm Megy a Dinamit"
|
||||
"name": "Bumm! Megy a Dinamit"
|
||||
},
|
||||
"Boxer": {
|
||||
"description": "Nyerj bombák használata nélkül",
|
||||
|
|
@ -68,7 +71,7 @@
|
|||
"name": "Boxoló"
|
||||
},
|
||||
"Dual Wielding": {
|
||||
"descriptionFull": "Csatlakoztass 2 kontrollert(hardvert vagy applikáció)",
|
||||
"descriptionFull": "Csatlakoztass 2 kontrollert (hardvert vagy applikációt)",
|
||||
"descriptionFullComplete": "2 kontroller csatlakoztatva (hardver vagy applikáció)",
|
||||
"name": "Dupla Hadonászás"
|
||||
},
|
||||
|
|
@ -345,6 +348,8 @@
|
|||
"allowText": "Engedélyezés",
|
||||
"alreadySignedInText": "A fiókoddal be vagy jelentkezve egy másik eszközről;\nkérlek cserélj fiókot vagy zárd be a játékot \na másik eszközön és próbáld újra",
|
||||
"apiVersionErrorText": "Nem lehet betölteni a ${NAME} modult jelenlegi verzió:${VERSION_USED}; szükséges verió:${VERSION_REQUIRED}.",
|
||||
"applyText": "Alkalmaz",
|
||||
"areYouSureText": "Biztos vagy benne?",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(\"Automatikus\" csak akkor érhető el ha csatlakoztatva van egy fejhallgató)",
|
||||
"headRelativeVRAudioText": "Head-Relative hangzás",
|
||||
|
|
@ -366,14 +371,22 @@
|
|||
"boostText": "Boost",
|
||||
"bsRemoteConfigureInAppText": "A(z) ${REMOTE_APP_NAME} a saját alkalmazásában konfigurálódik.",
|
||||
"buttonText": "Gomb",
|
||||
"canWeDebugText": "Szeretnéd, ha a BombSquad automatikusan jelentené a hibákat, \ncrash-eléseket, és általános használati infókat a fejlesztőknek?\n\nEz az adat nem tartalmaz személyes információkat és segít\na játék sima és hibamentes futásának megtartásában.",
|
||||
"canWeDebugText": "Szeretné, ha a(z) ${APP_NAME} automatikusan bejelentené a hibákat, \nösszeomlásokat és alapvető használati információkat a fejlesztőnek?\n\nEzek az adatok nem tartalmaznak személyes adatokat és segítséget nyújtanak\nhogy a játék zökkenőmentesen és hibamentesen működjön.",
|
||||
"cancelText": "Mégse",
|
||||
"cantConfigureDeviceText": "Bocs, ${DEVICE} nem beállítható.",
|
||||
"challengeEndedText": "Ez a kihívás már végét ért.",
|
||||
"chatMuteText": "Chat némítása",
|
||||
"chatMutedText": "Chat némítva",
|
||||
"chatUnMuteText": "Chat némítás feloldása",
|
||||
"chests": {
|
||||
"prizeOddsText": "A nyeremények lehetnek:",
|
||||
"reduceWaitText": "Idő csökkentése",
|
||||
"slotDescriptionText": "Ez a retesz egy láda tárolására alkalmas.\n\nLádákat szerezhetsz a kampány pályákról, \nversenyekről és \nmérföldkövek eléréséért.",
|
||||
"slotText": "${NUM}. Láda rekesz",
|
||||
"slotsFullWarningText": "Figyelem! A láda tartó reteszeid tele vannak. \nBármilyen láda, amit ebben a játékban szerzel, el fog veszni."
|
||||
},
|
||||
"choosingPlayerText": "<játékos választás>",
|
||||
"claimText": "Begyűjtés",
|
||||
"codesExplainText": "A kódokkal diagnosztizálni és javítani tudod az esetlegesen felmerülő,\n fiókoddal kapcsolatos problémákat.",
|
||||
"completeThisLevelToProceedText": "Teljesítened kell ezt\na szintet a folytatáshoz!",
|
||||
"completionBonusText": "Befejezési Bónusz",
|
||||
|
|
@ -558,8 +571,9 @@
|
|||
"demoText": "Demo",
|
||||
"denyText": "Megtagad",
|
||||
"deprecatedText": "Elavult",
|
||||
"descriptionText": "Leírás",
|
||||
"desktopResText": "Asztali Felbontás",
|
||||
"deviceAccountUpgradeText": "Hé!\nEgy eszközfiókkal vagy bejelentkezve (${NAME}). Egy jövőbeli frissítésben az ezeket az eszközfiókokat eltávolítjuk.\nFejleszd fiókod V2-es fiókra ha meg szeretnéd tartani a haladásod és a többi cuccaidat.\n.",
|
||||
"deviceAccountUpgradeText": "Hé!\nEgy eszközfiókkal vagy bejelentkezve (${NAME}). \nEgy jövőbeli frissítésben az ezeket az eszközfiókokat eltávolítjuk.\nFejleszd fiókod V2-es fiókra ha meg szeretnéd tartani a haladásod és a többi cuccaidat.",
|
||||
"difficultyEasyText": "Könnyű",
|
||||
"difficultyHardOnlyText": "Csak Nehéz Mód",
|
||||
"difficultyHardText": "Nehéz",
|
||||
|
|
@ -569,6 +583,7 @@
|
|||
"disableXInputDescriptionText": "Engedélyezi ,hogy 4-nél több kontroller is csatlakozhasson ,viszont nem biztos a hibátlan működés.",
|
||||
"disableXInputText": "XInput kikapcsolása",
|
||||
"disabledText": "Kikapcsolva",
|
||||
"discardText": "Elvetés",
|
||||
"discordFriendsText": "Szeretnél barátokat találni?\nCsatlakozz a Discord szerverünkre!",
|
||||
"discordJoinText": "Csatlakozás a discord szerverre",
|
||||
"doneText": "Elvégezve",
|
||||
|
|
@ -643,8 +658,8 @@
|
|||
"enabledText": "Bekapcsolva",
|
||||
"endText": "Befejezés",
|
||||
"enjoyText": "Jó Játékot!",
|
||||
"epicDescriptionFilterText": "${DESCRIPTION} A hatalmas lassú mozgásban",
|
||||
"epicNameFilterText": "Hatalmas ${NAME}",
|
||||
"epicDescriptionFilterText": "${DESCRIPTION} Az epikus lassú mozgásban",
|
||||
"epicNameFilterText": "Epikus ${NAME}",
|
||||
"errorAccessDeniedText": "hozzáférés megtagadva",
|
||||
"errorDeviceTimeIncorrectText": "Az eszközöd rossz időt mutat ennyi órával:${HOURS}.\nEz okozhat problémákat is.\nKérjük ellenőrizd az időt és idő-zónát a beállításokban.",
|
||||
"errorOutOfDiskSpaceText": "Kifogyott a szabadhelyből",
|
||||
|
|
@ -652,6 +667,8 @@
|
|||
"errorText": "Hiba",
|
||||
"errorUnknownText": "ismeretlen hiba",
|
||||
"exitGameText": "Kilépsz a ${APP_NAME}-ból?",
|
||||
"expiredAgoText": "Lejárt: ${T} óta",
|
||||
"expiresInText": "Lejár ${T} múlva",
|
||||
"exportSuccessText": "'${NAME}' áthelyezve.",
|
||||
"externalStorageText": "Külső Tárhely",
|
||||
"failText": "Bukta",
|
||||
|
|
@ -714,6 +731,7 @@
|
|||
"copyCodeConfirmText": "Vágólapra másolva.",
|
||||
"copyCodeText": "Kód másolása",
|
||||
"dedicatedServerInfoText": "A legjobb eredményért, csinálj dedikált szerver.Útmutató:bombsquadgame.com/server",
|
||||
"descriptionShortText": "A \"Toborzás\" ablakban összeállíthatsz egy csapatot.",
|
||||
"disconnectClientsText": "Ez le fogja csatlakoztatni a ${COUNT} játékost\na társaságodból. Biztos vagy benne?",
|
||||
"earnTicketsForRecommendingAmountText": "A barátaid kapni fognak ${COUNT} jegyet ha kipróbálják a játékot\n(és te is kapni fogsz ${YOU_COUNT} jegyet minden barátok általi kipróbálás után)",
|
||||
"earnTicketsForRecommendingText": "Terjeszd a játékot\ningyenes jegyekért...",
|
||||
|
|
@ -727,7 +745,7 @@
|
|||
"friendPromoCodeAwardText": "${COUNT} jegyet fogsz kapni minden egyes használásnál.",
|
||||
"friendPromoCodeExpireText": "Ez a kód ${EXPIRE_HOURS} óra múlva lejár és csak új játékosok használhatják.",
|
||||
"friendPromoCodeInfoText": "Ez a kód ${COUNT} jegyet ér.\n\nMenj a \"Beállítások->Haladó->Promóciós Kód Beírása\" a játékban, hogy aktiváld.\nLátogasd meg a bombsquadgame.com nevű weboldalt, a letöltési linkek eléréséhez.\nEz a kód csak ${EXPIRE_HOURS} óráig érvényes és csak új játékosok számára elérhető.",
|
||||
"friendPromoCodeInstructionsText": "Hogy használhasd, nyisd meg a ${APP_NAME}-ot, menj a \"Beállítások->Haladó>Promóciós Kód Beírása\" menüpontba.\nÍrd be a kódod majd kattints a \"Küldés\" gombra. Látogasd meg a bombsquadgame.com weboldalt letöltési linkekért, és a támogatott eszközök listájáért.",
|
||||
"friendPromoCodeInstructionsText": "A használatához nyissa meg a ${APP_NAME} alkalmazást, és lépjen a \"Beállítások->Speciális->Információ küldése\" menüpontra.\nA bombsquadgame.com oldalon megtalálja az összes támogatott platform letöltési linkjét.",
|
||||
"friendPromoCodeRedeemLongText": "${COUNT} jegyet ér és maximum ${MAX_USES} ember használhatja.",
|
||||
"friendPromoCodeRedeemShortText": "${COUNT} jegyet ér a játékon belül.",
|
||||
"friendPromoCodeWhereToEnterText": "(itt \"Beállítások->Haladó->Promóciós Kód Beírása\")",
|
||||
|
|
@ -830,6 +848,12 @@
|
|||
"youHaveShortText": "${COUNT} jegyed van",
|
||||
"youHaveText": "Neked ${COUNT} jegyed van."
|
||||
},
|
||||
"goldPass": {
|
||||
"desc1InfTokensText": "Végtelen token.",
|
||||
"desc2NoAdsText": "Nincsenek reklámok.",
|
||||
"desc3ForeverText": "Örökké.",
|
||||
"goldPassText": "Arany Pass."
|
||||
},
|
||||
"googleMultiplayerDiscontinuedText": "Bocsánat, A Google-nek a többjátékos szervisze többé nem elérhető.\nÉn most egy cserén dolgozok.\nAddig, Kérlek Válasz egy Másik Kapcsolódási lehetőséget.\n-Eric",
|
||||
"googlePlayPurchasesNotAvailableText": "A Google Play vásárlások nem elérhetőek.\nTalán frissíteni kell a vásárló alakalmazásod",
|
||||
"googlePlayServicesNotAvailableText": "A Google Play Szolgáltatások nem elérhetőek.\nNéhány része a játéknak talán le vannak tiltva",
|
||||
|
|
@ -904,6 +928,7 @@
|
|||
"importText": "Importálás",
|
||||
"importingText": "Bemásolás...",
|
||||
"inGameClippedNameText": "játékbeli alak:\n\"${NAME}\"",
|
||||
"inboxText": "Bejövő",
|
||||
"installDiskSpaceErrorText": "Hiba: Nem lehet teljesíteni a telepítést.\nTalán kifogytál a szabadhelyből az eszközödön.\nTakaríts egy kis helyet, és próbáld újra.",
|
||||
"internal": {
|
||||
"arrowsToExitListText": "nyomj ${LEFT}-t vagy ${RIGHT}-t a lista bezárásához",
|
||||
|
|
@ -958,12 +983,14 @@
|
|||
"timeOutText": "(Kifagyás ${TIME} másodpercen belül)",
|
||||
"touchScreenJoinWarningText": "Az érintőképernyővel csatlakoztál.\nHa ez egy hiba, akkor menj ide: Menü->Játék Elhagyása.",
|
||||
"touchScreenText": "Érintőképernyő",
|
||||
"unableToCompleteTryAgainText": "Nem sikerült.\nKérlek próbáld újra.",
|
||||
"unableToResolveHostText": "Hiba: a host nem elérhető.",
|
||||
"unavailableNoConnectionText": "Ez a funkció nem elérhető (Nincs internet kapcsolat?).",
|
||||
"vrOrientationResetCardboardText": "Használd ezt, hogy visszaállíts a VR orientációkat.\nHogy játszhass csatlakoztatnod kell egy kontrollert.",
|
||||
"vrOrientationResetText": "VR orientáció újraindítása.",
|
||||
"willTimeOutText": "(lejár az idő, ha tétlen)"
|
||||
},
|
||||
"inventoryText": "Eszköztár",
|
||||
"jumpBoldText": "UGORJ",
|
||||
"jumpText": "Ugorj",
|
||||
"keepText": "Tartsd",
|
||||
|
|
@ -986,7 +1013,7 @@
|
|||
"killsText": "Ölések",
|
||||
"kioskWindow": {
|
||||
"easyText": "Könnyű",
|
||||
"epicModeText": "Hatalmas mód",
|
||||
"epicModeText": "Epikus mód",
|
||||
"fullMenuText": "Teljes menü",
|
||||
"hardText": "Nehéz",
|
||||
"mediumText": "Közepes",
|
||||
|
|
@ -1010,8 +1037,11 @@
|
|||
"seasonEndsMinutesText": "Szezonból hátralévő idő:${NUMBER} perc.",
|
||||
"seasonText": "Szezon ${NUMBER}",
|
||||
"tournamentLeagueText": "Hogy ebbe a tornába be tudj nevezni,el kell érned ezt a ligát:${NAME}",
|
||||
"trophyCountsResetText": "A trófeák a következő szezonban lenullázódnak."
|
||||
"trophyCountsResetText": "A trófeák a következő szezonban lenullázódnak.",
|
||||
"upToDateBonusDescriptionText": "Ha legújabb verzióval játszol,\n${PERCENT}%-os bónuszt kapsz.",
|
||||
"upToDateBonusText": "\"Legújabb verzió\" bónusz"
|
||||
},
|
||||
"learnMoreText": "Tudj meg többet",
|
||||
"levelBestScoresText": "Legjobb eredmények a ${LEVEL}-es szinten.",
|
||||
"levelBestTimesText": "Legjobb időeredmények a ${LEVEL}-es szinten",
|
||||
"levelFastestTimesText": "Legjobb idők a ${LEVEL}-n",
|
||||
|
|
@ -1057,6 +1087,8 @@
|
|||
"modeArcadeText": "Árkád mód",
|
||||
"modeClassicText": "Klasszikus mód",
|
||||
"modeDemoText": "Demó mód",
|
||||
"moreSoonText": "Nemsokára több tartalom érkezik!",
|
||||
"mostDestroyedPlayerText": "Legtöbbször megsemmisített játékos",
|
||||
"mostValuablePlayerText": "Legértékesebb Játékos",
|
||||
"mostViolatedPlayerText": "Legtöbbször Megölt Játékos",
|
||||
"mostViolentPlayerText": "Legerőszakosabb Játékos",
|
||||
|
|
@ -1073,6 +1105,7 @@
|
|||
"nameSuicideText": "${NAME} öngyilkosságot követett el.",
|
||||
"nameText": "Név",
|
||||
"nativeText": "Eredeti",
|
||||
"newExclaimText": "Új!",
|
||||
"newPersonalBestText": "Új személyi rekord!",
|
||||
"newTestBuildAvailableText": "Egy újabb teszt szerkezet elérhető! (${VERSION} build ${BUILD}).\nSzerezd meg a ${ADDRESS}-n",
|
||||
"newText": "Új",
|
||||
|
|
@ -1083,6 +1116,7 @@
|
|||
"noContinuesText": "(újraéledés nélkül)",
|
||||
"noExternalStorageErrorText": "Nincs megtalálható külső tárhely ezen az eszközön",
|
||||
"noGameCircleText": "Hiba: nincs bejelentkezve egy JátékKörbe",
|
||||
"noMessagesText": "Nincsenek üzenetek.",
|
||||
"noPluginsInstalledText": "Nincsenek hozzáadva pluginok",
|
||||
"noProfilesErrorText": "Nincs játékos profilod, tehát te most '${NAME}'-val nyomulsz.\nMenj a Beállítások->Játékos Profilok-ba hogy csinálj magadnak egy profilt-",
|
||||
"noScoresYetText": "Nincs még pontod.",
|
||||
|
|
@ -1092,6 +1126,7 @@
|
|||
"noValidMapsErrorText": "Nem található pálya ehhez a játéktípushoz.",
|
||||
"notEnoughPlayersRemainingText": "Nincs elég játékos. Lépj ki és kezdj egy új játékot.",
|
||||
"notEnoughPlayersText": "A játék elindításához, minimum ${COUNT} játékos szükséges!",
|
||||
"notEnoughTicketsText": "Nincs elég jegyed!",
|
||||
"notNowText": "Most Nem",
|
||||
"notSignedInErrorText": "Be kell jelentkezned a művelethez.",
|
||||
"notSignedInGooglePlayErrorText": "Be kell jelentkezned Google Play-el a művelethez.",
|
||||
|
|
@ -1104,6 +1139,9 @@
|
|||
"onText": "Be",
|
||||
"oneMomentText": "Egy pillanat...",
|
||||
"onslaughtRespawnText": "${PLAYER} újraéled a következő körben (${WAVE})",
|
||||
"openMeText": "Nyiss ki!",
|
||||
"openNowText": "Azonnali kinyitás",
|
||||
"openText": "Kinyitás",
|
||||
"orText": "${A} vagy ${B}",
|
||||
"otherText": "Egyéb...",
|
||||
"outOfText": "(#${RANK} a ${ALL}-ból/-ből)",
|
||||
|
|
@ -1190,6 +1228,8 @@
|
|||
"punchText": "Ütés",
|
||||
"purchaseForText": "Megvétel ennyiért:${PRICE}",
|
||||
"purchaseGameText": "Játék megvásárlása",
|
||||
"purchaseNeverAvailableText": "Sajnos ezen a builden nem lehet vásárolni.\n Próbáljon meg bejelentkezni fiókjába egy másik platformon, és onnan vásárolni.",
|
||||
"purchaseNotAvailableText": "Ez a vásárlás nem elérhető.",
|
||||
"purchasingText": "Vásárlás folyamatban...",
|
||||
"quitGameText": "Kilépsz a ${APP_NAME}-ból?",
|
||||
"quittingIn5SecondsText": "Kilépés 5 másodpercen belül...",
|
||||
|
|
@ -1231,6 +1271,7 @@
|
|||
"version_mismatch": "Verzió hiba.\nLégy biztos abban hogy a BombSqad Irányító\na legújabb verzióval rendelkezik, és próbáld újra."
|
||||
},
|
||||
"removeInGameAdsText": "Old fel a \"${PRO}\"-t az áruházból hogy eltávolítsd a játékbeli reklámokat.",
|
||||
"removeInGameAdsTokenPurchaseText": "Korlátozott idejű ajánlat: Vásárold meg bármelyik token csomagot, hogy eltávolítsd a reklámokat.",
|
||||
"renameText": "Átnevezés",
|
||||
"replayEndText": "Visszajátszás Befejezése",
|
||||
"replayNameDefaultText": "Utolsó Játék visszajátszás",
|
||||
|
|
@ -1264,6 +1305,7 @@
|
|||
},
|
||||
"scoreWasText": "(${COUNT} volt)",
|
||||
"selectText": "Válassz",
|
||||
"sendInfoDescriptionText": "Fiók- és alkalmazásállapot-információkat küld el a fejlesztőnek.\nKérjük, adja meg a nevét vagy a küldés okát.",
|
||||
"seriesWinLine1PlayerText": "NYERTE MEG A",
|
||||
"seriesWinLine1TeamText": "NYERTE MEG A",
|
||||
"seriesWinLine1Text": "NYERTE MEG A",
|
||||
|
|
@ -1280,17 +1322,20 @@
|
|||
},
|
||||
"settingsWindowAdvanced": {
|
||||
"alwaysUseInternalKeyboardDescriptionText": "(kontroller barát billentyűzet a szöveg szerkesztéséhez)",
|
||||
"alwaysUseInternalKeyboardText": "Használjon Belső Billentyűzetet",
|
||||
"alwaysUseInternalKeyboardText": "Mindig Használjon Belső Billentyűzetet",
|
||||
"benchmarksText": "Teljesítmény és Stressz Teszt",
|
||||
"disableCameraGyroscopeMotionText": "Kamera Gyroscope kikapcsolása",
|
||||
"disableCameraShakeText": "Kamera rázást Kikapcsolni",
|
||||
"devToolsText": "Fejlesztői Eszközök",
|
||||
"disableCameraGyroscopeMotionText": "Kamera Giroszkóp mozgás kikapcsolása",
|
||||
"disableCameraShakeText": "Kamera rázás kikapcsolása",
|
||||
"disableThisNotice": "(kikapcsolhatod ezt a beállítások menüben)",
|
||||
"enablePackageModsDescriptionText": "(engedélyez a plusz helyeket a modoknak, viszont letiltja a hálózati játékot)",
|
||||
"enablePackageModsText": "Helyi Modok Engedélyezése ",
|
||||
"enterPromoCodeText": "Kód beírása",
|
||||
"forTestingText": "Megj.:ezek az értékek csak tesztek és az alkalmazás bezárásával együtt törlődnek.",
|
||||
"helpTranslateText": "A ${APP_NAME} nem Angol fordításait a közösség végzi.\nHa szeretnél fordítani vagy hibát javítani akkor \nhasználd ezt a linket. Előre is köszönöm!",
|
||||
"kickIdlePlayersText": "Tétlen Játékosok Kirúgása",
|
||||
"insecureConnectionsDescriptionText": "nem ajánlott, de engedélyezheti az online játékot \nkorlátozott országokból vagy hálózatokból",
|
||||
"insecureConnectionsText": "Nem biztonságos kapcsolatok használata",
|
||||
"kickIdlePlayersText": "Rúgd a tétlen játékosokat",
|
||||
"kidFriendlyModeText": "Gyerekbarát Mód (erőszak csökkentése,stb.)",
|
||||
"languageText": "Nyelv",
|
||||
"moddingGuideText": "Modolási Útmutató",
|
||||
|
|
@ -1298,10 +1343,12 @@
|
|||
"mustRestartText": "Újra kell indítanod a játékot a módosítások érvénybe lépéséhez.",
|
||||
"netTestingText": "Hálózat Tesztelése",
|
||||
"resetText": "Visszaállítás",
|
||||
"sendInfoText": "Kűldj Infót",
|
||||
"showBombTrajectoriesText": "Bomba Pályájának Mutatása",
|
||||
"showDemosWhenIdleText": "Demók lejátszása tétlenség esetén",
|
||||
"showDevConsoleButtonText": "A fejlesztői konzol gombjának megjelenítése",
|
||||
"showInGamePingText": "Ping mutatása játékban",
|
||||
"showDemosWhenIdleText": "Demók megjelenítése üresjáratban",
|
||||
"showDeprecatedLoginTypesText": "Elavult bejelentkezési típúsok megjelenítése",
|
||||
"showDevConsoleButtonText": "A fejlesztői konzol gomb megjelenítése",
|
||||
"showInGamePingText": "A játékon belüli ping megjelenítése",
|
||||
"showPlayerNamesText": "Játékos Név Mutatása",
|
||||
"showUserModsText": "Mod Mappák Mutatása",
|
||||
"titleText": "Haladó",
|
||||
|
|
@ -1309,8 +1356,8 @@
|
|||
"translationFetchErrorText": "fordítási státusz elérhetetlen",
|
||||
"translationFetchingStatusText": "Fordítási státusz ellenőrzése...",
|
||||
"translationInformMe": "Értesítsen, ha a nyelvem fordítását frissíteni kell",
|
||||
"translationNoUpdateNeededText": "A jelenlegi nyelv naprakész; woohoo!",
|
||||
"translationUpdateNeededText": "**a jelenlegi nyelv frissítésre szorul!!**",
|
||||
"translationNoUpdateNeededText": "Az aktuális nyelv naprakész; woohoo!",
|
||||
"translationUpdateNeededText": "** A jelenlegi nyelv frissítésre szorul!! **",
|
||||
"vrTestingText": "VR Tesztelése"
|
||||
},
|
||||
"shareText": "Megosztás",
|
||||
|
|
@ -1327,8 +1374,8 @@
|
|||
"soundtrackTypeNames": {
|
||||
"CharSelect": "Karakter Választás",
|
||||
"Chosen One": "A kiválasztott",
|
||||
"Epic": "Hatalmas Módú Játékok",
|
||||
"Epic Race": "Hatalmas Verseny",
|
||||
"Epic": "Epikus Módú Játékok",
|
||||
"Epic Race": "Epikus Verseny",
|
||||
"FlagCatcher": "Szerezd meg a Zászlót",
|
||||
"Flying": "Boldog Gondolatok",
|
||||
"Football": "Football",
|
||||
|
|
@ -1409,6 +1456,7 @@
|
|||
"testBuildValidatedText": "A Teszt Verzió Naprakész;Élvezd!",
|
||||
"thankYouText": "Köszi a támogatást. Jó játékot!",
|
||||
"threeKillText": "TRIPLA ÖLÉS!",
|
||||
"ticketsDescriptionText": "A jegyekkel karaktereket,\npályákat,\nés minijátékokat tudsz feloldani. \n\nJegyekhez a ládákból tudsz jutni.",
|
||||
"timeBonusText": "Idő Bónusz",
|
||||
"timeElapsedText": "Eltelt Idő",
|
||||
"timeExpiredText": "Lejárt az idő",
|
||||
|
|
@ -1419,10 +1467,23 @@
|
|||
"tipText": "Tipp",
|
||||
"titleText": "BombSquad",
|
||||
"titleVRText": "BombSquad VR",
|
||||
"tokens": {
|
||||
"getTokensText": "Szerezz Tokeneket",
|
||||
"notEnoughTokensText": "Nincs elég tokened!",
|
||||
"numTokensText": "${COUNT} Tokenek",
|
||||
"shinyNewCurrencyText": "BombSquad fényes új fizetőeszköze.",
|
||||
"tokenPack1Text": "Kicsi Token Csomag",
|
||||
"tokenPack2Text": "Közepes Token Csomag",
|
||||
"tokenPack3Text": "Nagy Token Csomag",
|
||||
"tokenPack4Text": "Óriás Token Csomag",
|
||||
"tokensDescriptionText": "A tokenekkel a ládák \nkinyitási idejét rövidítheted le,\nés még néhány más dolgot\ntudsz velük csinálni.\n\nTokeneket nyerni, vagy vásárolni is tudsz.",
|
||||
"youHaveGoldPassText": "Megvan az Arany Pass.\nMinden token vásárlás ingyenes.\nÉlvezd!"
|
||||
},
|
||||
"topFriendsText": "Top Barátok",
|
||||
"tournamentCheckingStateText": "Torna állapotának ellenőrzése;Kérlek várj...",
|
||||
"tournamentEndedText": "Ez a torna befejeződött.Az új torna hamarosan kezdődik.",
|
||||
"tournamentEntryText": "Belépés a Tornába",
|
||||
"tournamentFinalStandingsText": "Végleges állás",
|
||||
"tournamentResultsRecentText": "Legutóbbi Tornában elért helyezésed",
|
||||
"tournamentStandingsText": "Torna Állása",
|
||||
"tournamentText": "Bajnokság",
|
||||
|
|
@ -1478,6 +1539,18 @@
|
|||
"Uber Onslaught": "Über Támadás",
|
||||
"Uber Runaround": "Über Szaladgálás"
|
||||
},
|
||||
"displayItemNames": {
|
||||
"${C} Tickets": "${C} jegy",
|
||||
"${C} Tokens": "${C} token",
|
||||
"Chest": "Láda",
|
||||
"L1 Chest": "1-es szintű láda",
|
||||
"L2 Chest": "2-es szintű láda",
|
||||
"L3 Chest": "3-as szintű láda",
|
||||
"L4 Chest": "4-es szintű láda",
|
||||
"L5 Chest": "5-ös szintű láda",
|
||||
"L6 Chest": "6-os szintű láda",
|
||||
"Unknown Chest": "Ismeretlen láda"
|
||||
},
|
||||
"gameDescriptions": {
|
||||
"Be the chosen one for a length of time to win.\nKill the chosen one to become it.": "Légy a kiválasztott egy ideig hogy nyerj.\nÖld meg a kiválasztottat, hogy te légy az.",
|
||||
"Bomb as many targets as you can.": "Bombázz annyi célpontot, amennyit csak tudsz.",
|
||||
|
|
@ -1486,7 +1559,7 @@
|
|||
"Crush ${ARG1} of your enemies.": "Zúzz szét ${ARG1}-t az ellenségeidből.",
|
||||
"Defeat all enemies.": "Győzz le minden ellenséget.",
|
||||
"Dodge the falling bombs.": "Térj ki minden hulló bomba elől.",
|
||||
"Final glorious epic slow motion battle to the death.": "A végső dicső hatalmas lassú mozgásos csata a halálig.",
|
||||
"Final glorious epic slow motion battle to the death.": "A végső dicső epikus csata a halálig.",
|
||||
"Gather eggs!": "Gyűjts tojásokat!",
|
||||
"Get the flag to the enemy end zone.": "Juttasd el a zászlót az ellenséges zóna végére.",
|
||||
"How fast can you defeat the ninjas?": "Milyen gyorsan győzöd le a ninja-kat?",
|
||||
|
|
@ -1582,6 +1655,7 @@
|
|||
"Korean": "Koreai",
|
||||
"Malay": "Maláj",
|
||||
"Persian": "Perzsa",
|
||||
"PirateSpeak": "Kalóznyelv",
|
||||
"Polish": "Lengyel",
|
||||
"Portuguese": "Portugál",
|
||||
"Romanian": "Román",
|
||||
|
|
@ -1623,7 +1697,7 @@
|
|||
"Zigzag": "Zigzag"
|
||||
},
|
||||
"playlistNames": {
|
||||
"Just Epic": "Csak Hatalmas",
|
||||
"Just Epic": "Csak Epikus",
|
||||
"Just Sports": "Csak Sportok"
|
||||
},
|
||||
"scoreNames": {
|
||||
|
|
@ -1653,6 +1727,7 @@
|
|||
"Cheating detected; scores and prizes suspended for ${COUNT} days.": "Csalás észlelve; a pontok és nyeremények felfüggesztve ${COUNT} napig.",
|
||||
"Could not establish a secure connection.": "Nem lehet megbízható kapcsolatot létesíteni.",
|
||||
"Daily maximum reached.": "Napi maximum elérve.",
|
||||
"Daily sign-in reward": "Napi belépésért járó jutalom",
|
||||
"Entering tournament...": "Belépés a tornába...",
|
||||
"Invalid code.": "Hibás kód.",
|
||||
"Invalid payment; purchase canceled.": "Érvénytelen fizetési mód; fizetés visszavonva.",
|
||||
|
|
@ -1662,11 +1737,14 @@
|
|||
"Item unlocked!": "Elem feloldva!",
|
||||
"LINKING DENIED. ${ACCOUNT} contains\nsignificant data that would ALL BE LOST.\nYou can link in the opposite order if you'd like\n(and lose THIS account's data instead)": "KAPCSOLAT FENNTARTVA. ${ACCOUNT} tartalmaz\njelentős adatok, amelyek MINDEN elvesznének.\nÖsszekapcsolhatja az ellenkező sorrendben, ha szeretné\n(és ehelyett elveszíti a fiók adatait)",
|
||||
"Link account ${ACCOUNT} to this account?\nAll existing data on ${ACCOUNT} will be lost.\nThis can not be undone. Are you sure?": "Összekötöd a/az ${ACCOUNT} fiókot ehhez a fiókhoz?\nMinden létező adat a/az ${ACCOUNT} fiókon elveszik.\nEzt nem tudod majd visszavonni. Biztos vagy benne?",
|
||||
"Longer streaks lead to better rewards.": "Naponta egyre jobb jutalmakat kapsz.",
|
||||
"Max number of playlists reached.": "Maximum listaszám elérve.",
|
||||
"Max number of profiles reached.": "Maximum profilszám elérve.",
|
||||
"Maximum friend code rewards reached.": "Maximum barát kód elérve.",
|
||||
"Message is too long.": "Az üzenet túl hosszú.",
|
||||
"New tournament result!": "Új verseny eredmény!",
|
||||
"No servers are available. Please try again soon.": "A szerverek nem elérhetőek. Kérlek próbáld újra később.",
|
||||
"No slots available. Free a slot and try again.": "Nincs több rekesz. Szabadíts fel egyet, és próbáld újra",
|
||||
"Profile \"${NAME}\" upgraded successfully.": "A \"${NAME}\" profil teljes körűvé fejlesztve.",
|
||||
"Profile could not be upgraded.": "A profilt nem lehet frissíteni.",
|
||||
"Purchase successful!": "Vásárlás sikeres!",
|
||||
|
|
@ -1676,7 +1754,9 @@
|
|||
"Sorry, this code has already been used.": "Ezt a kódot már használták.",
|
||||
"Sorry, this code has expired.": "Ez a kód már lejárt.",
|
||||
"Sorry, this code only works for new accounts.": "Ezt a kódot csak új játékosok használhatják.",
|
||||
"Sorry, this has expired.": "Bocsi, ez már lejárt.",
|
||||
"Still searching for nearby servers; please try again soon.": "Keresés közeli szerverek iránt...",
|
||||
"Streak: ${NUM} days": "${NUM} napos széria",
|
||||
"Temporarily unavailable; please try again later.": "Jelenleg elérhetetlen; kérlek próbáld újra később.",
|
||||
"The tournament ended before you finished.": "A torna lezárult mielőtt te befejezted volna.",
|
||||
"This account cannot be unlinked for ${NUM} days.": "Ezt a fiókot nem tudod leválasztani ${NUM} napig.",
|
||||
|
|
@ -1687,19 +1767,27 @@
|
|||
"Tournaments require ${VERSION} or newer": "A versenyhez ${VERSION} verzió vagy újabb szükséges.",
|
||||
"Unlink ${ACCOUNT} from this account?\nAll data on ${ACCOUNT} will be reset.\n(except for achievements in some cases)": "Leválasztod ${ACCOUNT} erről a fiókról?\nAz összes adat innen: ${ACCOUNT} törölve lesz. \n(Kivéve a mérföldkövek egyes esetekben)",
|
||||
"WARNING: complaints of hacking have been issued against your account.\nAccounts found to be hacking will be banned. Please play fair.": "FIGYELMEZTETÉS: fiókod ellen panaszok érkeztek csalásért.\nA csaláson kapott fiókok tiltva lesznek. Kérlek játsz tisztességesen.",
|
||||
"Wait reduced!": "Várakozási idő csökkentve!",
|
||||
"Would you like to link your device account to this one?\n\nYour device account is ${ACCOUNT1}\nThis account is ${ACCOUNT2}\n\nThis will allow you to keep your existing progress.\nWarning: this cannot be undone!\n": "Szeretnéd hogy a készülék felhasználója ez legyen?\n\nA készülék mostani felhasználója: ${ACCOUNT1}\nEz a felhasználó: ${ACCOUNT2}\n\nEz megtartja a mostani teljesítményed.\nVigyázat: ez nem visszavonható!",
|
||||
"You already own this!": "Már birtoklod ezt!",
|
||||
"You can join in ${COUNT} seconds.": "Beléphetsz ${COUNT} másodperc múlva.",
|
||||
"You don't have enough tickets for this!": "Nincs elég jegyed a vásárláshoz!",
|
||||
"You don't own that.": "Te nem rendelkezel ezzel.",
|
||||
"You got ${COUNT} tickets!": "Kaptál ${COUNT} jegyet!",
|
||||
"You got ${COUNT} tokens!": "${COUNT} tokened van.",
|
||||
"You got a ${ITEM}!": "Kaptál egy ${ITEM}-t!",
|
||||
"You got a chest!": "Kaptál egy ládát!",
|
||||
"You got an achievement reward!": "Jutalmat kaptál a teljesítményedért!",
|
||||
"You have been promoted to a new league; congratulations!": "Feljutottál egy új ligába; Gratulálunk!",
|
||||
"You lost a chest! (All your chest slots were full)": "Elvesztettél egy ládát! (minden ládatartó rekeszed tele van)",
|
||||
"You must update the app to view this.": "Frissítsd az alkalmazást, hogy ezt megnézhesd.",
|
||||
"You must update to a newer version of the app to do this.": "Frissítened kell a játékot az újabb verzióra, hogy megtehesd ezt.",
|
||||
"You must update to the newest version of the game to do this.": "Frissítened kell a játék legújabb verziójára hogy ezt meg tudd tenni.",
|
||||
"You must wait a few seconds before entering a new code.": "Várnod kell pár másodpercet egy új kód beírásához.",
|
||||
"You placed #${RANK} in a tournament!": "#${RANK}-dik/ik lettél a versenyen!",
|
||||
"You ranked #${RANK} in the last tournament. Thanks for playing!": "Az előző tornában elért helyezésed:#${RANK}.Köszönjük a játékot!",
|
||||
"Your account was rejected. Are you signed in?": "Fiókod elutasítva. Be vagy jelentkezve?",
|
||||
"Your ad views are not registering. Ad options will be limited for a while.": "A hirdetésmegtekintések nem regisztrálódnak. A hirdetési lehetőségek egy ideig korlátozottak lesznek.",
|
||||
"Your copy of the game has been modified.\nPlease revert any changes and try again.": "A játékod módosítva lett.\nÁllíts vissza minden módosítást és próbáld újra.",
|
||||
"Your friend code was used by ${ACCOUNT}": "A promóciós kódod használva volt ${ACCOUNT} által"
|
||||
},
|
||||
|
|
@ -1722,7 +1810,7 @@
|
|||
"Enable Impact Bombs": "Ragadós Bomba engedélyezve",
|
||||
"Enable Triple Bombs": "Háromszoros Bomba engedélyezve",
|
||||
"Entire Team Must Finish": "Az Egész csapatnak be kell érnie",
|
||||
"Epic Mode": "Hatalmas Mód",
|
||||
"Epic Mode": "Epikus Mód",
|
||||
"Flag Idle Return Time": "Zászló Tétlen Visszatérés Idő",
|
||||
"Flag Touch Return Time": "Zászló Érintés Visszatérési Idő",
|
||||
"Hold Time": "Kitartási Idő",
|
||||
|
|
@ -1815,18 +1903,18 @@
|
|||
"phrase04Text": "Sok tárgy a ${APP_NAME}-ban FIZIKÁRA alapszik.",
|
||||
"phrase05Text": "Például, ha ütsz...",
|
||||
"phrase06Text": "..a sérülés az őkleid gyorsaságán múlik.",
|
||||
"phrase07Text": "Látod? Nem mozdultunk, szóval ez alig sebezte meg ${NAME}-t.",
|
||||
"phrase07Text": "Látod? Nem mozdultunk, szóval ez alig sebezte meg ${NAME}et.",
|
||||
"phrase08Text": "Most ugorjunk és pörögjünk hogy sebességre tegyünk szert.",
|
||||
"phrase09Text": "Áh, így jobb.",
|
||||
"phrase10Text": "A futás is segít.",
|
||||
"phrase11Text": "Tartsd lenyomva AKÀRMELYIK gombot a futáshoz.",
|
||||
"phrase11Text": "Tartsd lenyomva AKÁRMELYIK gombot a futáshoz.",
|
||||
"phrase12Text": "Extra-király ütésért, próbálj futni és pörögni.",
|
||||
"phrase13Text": "Hopsz; bocs ezért ${NAME}",
|
||||
"phrase14Text": "Feltudsz venni és eldobni dolgokat, csak úgy mint a zászlót... vagy ${NAME}-t.",
|
||||
"phrase15Text": "Végül, van bomba.",
|
||||
"phrase14Text": "Fel tudsz venni és eldobni dolgokat, csak úgy mint a zászlót... vagy ${NAME}ot.",
|
||||
"phrase15Text": "Végül, van a bomba.",
|
||||
"phrase16Text": "A bomba dobás gyakorlatot vesz igénybe.",
|
||||
"phrase17Text": "Áú! Nem nagyon jódobás!",
|
||||
"phrase18Text": "Mozgás segít távolabbra dobni.",
|
||||
"phrase17Text": "Áú! Nem valami jó dobás!",
|
||||
"phrase18Text": "A mozgás segít távolabbra dobni.",
|
||||
"phrase19Text": "Az ugrás segít magasabbra dobni.",
|
||||
"phrase20Text": "\"Ostorozz\" a bombáddal, hogy még messzebbre is dobd.",
|
||||
"phrase21Text": "Beidőzíteni a bombádat, trükkös lehet.",
|
||||
|
|
@ -1834,7 +1922,7 @@
|
|||
"phrase23Text": "Próbáld meg \"kisütni\" a kanócot egy vagy két másodpercre.",
|
||||
"phrase24Text": "Hurrá! Jól megsült.",
|
||||
"phrase25Text": "Jólvan, ez csak erről szól.",
|
||||
"phrase26Text": "Kapd el őket, tigris!",
|
||||
"phrase26Text": "Kapd el őket, te vadállat!",
|
||||
"phrase27Text": "Emlékezz az edzésedre, és élve jössz vissza!",
|
||||
"phrase28Text": "...jah, talán...",
|
||||
"phrase29Text": "Sok szerencsét!",
|
||||
|
|
@ -1866,9 +1954,10 @@
|
|||
"userSystemScriptsCreateText": "Felhasználói rendszer-scriptek létrehozása",
|
||||
"userSystemScriptsDeleteText": "Felhasználói rendszer-scriptek törlése",
|
||||
"usesExternalControllerText": "Ez a játék egy külső vezérlőt használ bemenet gyanánt.",
|
||||
"usingItunesText": "Itunes használása a zenéhez...",
|
||||
"usingItunesText": "Itunes használata a zenéhez...",
|
||||
"usingItunesTurnRepeatAndShuffleOnText": "Kérlek bizonyosodj meg arról, hogy a keverés BE van kapcsolva és az ismétlés MINDEN-re van állítva az iTunes-on.",
|
||||
"v2AccountLinkingInfoText": "Hogy V2-es fiókot kapcsolj, menj a 'fiók kezelése' gombra.",
|
||||
"v2AccountRequiredText": "Ehhez V2 fiókra van szükség. Fejleszd a fiókodat és próbáld meg újra.",
|
||||
"validatingTestBuildText": "Teszt Szerkezet Érvényesítése...",
|
||||
"viaText": "via",
|
||||
"victoryText": "Győzelem!",
|
||||
|
|
@ -1935,5 +2024,6 @@
|
|||
},
|
||||
"yesAllowText": "Igen, Engedélyez!",
|
||||
"yourBestScoresText": "A legjobb pontjaid",
|
||||
"yourBestTimesText": "A legjobb időid"
|
||||
"yourBestTimesText": "A legjobb időid",
|
||||
"yourPrizeText": "A jutalmad:"
|
||||
}
|
||||
1035
dist/ba_data/data/languages/indonesian.json
vendored
1035
dist/ba_data/data/languages/indonesian.json
vendored
File diff suppressed because it is too large
Load diff
107
dist/ba_data/data/languages/italian.json
vendored
107
dist/ba_data/data/languages/italian.json
vendored
|
|
@ -7,7 +7,9 @@
|
|||
"campaignProgressText": "Progresso Campagna [Difficile]: ${PROGRESS}",
|
||||
"changeOncePerSeason": "Puoi cambiare questa cosa solo una volta a stagione.",
|
||||
"changeOncePerSeasonError": "Devi aspettare la prossima stagione per apportare delle modifiche (${NUM} days)",
|
||||
"createAnAccountText": "Crea un'Account",
|
||||
"customName": "Nome Personalizzato",
|
||||
"deleteAccountText": "Elimina Account",
|
||||
"deviceSpecificAccountText": "Stai usando un account automaticamente generato: ${NAME}",
|
||||
"googlePlayGamesAccountSwitchText": "Se desideri utilizzare un'altro account Google,\nutilizza l'app Google Play Games.",
|
||||
"linkAccountsEnterCodeText": "Inserisci il codice",
|
||||
|
|
@ -20,7 +22,7 @@
|
|||
"manageAccountText": "Gestisci Account",
|
||||
"nameChangeConfirm": "Confermi di voler modificare il tuo nome in ${NAME}?",
|
||||
"notLoggedInText": "<accesso non effettuato>",
|
||||
"resetProgressConfirmNoAchievementsText": "Stai per cancellare i tuoi progressi in\nmodalità cooperativa, i tuoi obbiettivi, i tuoi punteggi\nlocali (ma non i tuoi biglietti). \n\nL'operazione è irreversibile: continuare?",
|
||||
"resetProgressConfirmNoAchievementsText": "Stai per cancellare i tuoi progressi in modalità cooperativa,\ni tuoi obiettivi ed i tuoi punteggi locali (ma non i tuoi biglietti). \nL'operazione è irreversibile: continuare?",
|
||||
"resetProgressConfirmText": "Stai per cancellare i tuoi progressi in\nmodalità cooperativa, i tuoi punteggi\nlocali e i tuoi obiettivi (ma non i tuoi biglietti).\nL'operazione è irreversibile: continuare?",
|
||||
"resetProgressText": "Cancella Progressi",
|
||||
"setAccountName": "Inserisci un nome utente",
|
||||
|
|
@ -36,7 +38,7 @@
|
|||
"signInWithTestAccountText": "Accedi con un account di prova",
|
||||
"signInWithText": "Accedi con ${SERVICE}",
|
||||
"signInWithV2InfoText": "(un account che funziona su tutte le piattaforme)",
|
||||
"signInWithV2Text": "Effettua l'accesso con un account di BombSquad",
|
||||
"signInWithV2Text": "Accedi con un account ${APP_NAME}",
|
||||
"signOutText": "Esci",
|
||||
"signingInText": "Accesso in corso...",
|
||||
"signingOutText": "Uscita in corso...",
|
||||
|
|
@ -336,7 +338,7 @@
|
|||
},
|
||||
"achievementsRemainingText": "Trofei rimasti:",
|
||||
"achievementsText": "Trofei",
|
||||
"achievementsUnavailableForOldSeasonsText": "Mi dispiace, ma gli obbiettivi non sono disponibili per le stagioni vecchie.",
|
||||
"achievementsUnavailableForOldSeasonsText": "Mi dispiace, ma gli obiettivi non sono disponibili per le stagioni vecchie.",
|
||||
"activatedText": "${THING} attivato.",
|
||||
"addGameWindow": {
|
||||
"getMoreGamesText": "Ottieni Giochi...",
|
||||
|
|
@ -348,6 +350,8 @@
|
|||
"allowText": "Consenti",
|
||||
"alreadySignedInText": "Il tuo account è collegato da un altro dispositivo;\ncambia account o chiudi il gioco nel tuo altro\ndispositivo e riprova.",
|
||||
"apiVersionErrorText": "Impossibile caricare il modulo ${NAME}; sono installate le API versione ${VERSION_USED}; è richiesta la ${VERSION_REQUIRED}.",
|
||||
"applyText": "Applica",
|
||||
"areYouSureText": "Vuoi davvero procedere?",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(\"Auto\" abilitalo solo quando sono connesse delle cuffie)",
|
||||
"headRelativeVRAudioText": "Audio VR Head-Relative",
|
||||
|
|
@ -372,14 +376,23 @@
|
|||
"boostText": "Potenziamento",
|
||||
"bsRemoteConfigureInAppText": "${REMOTE_APP_NAME} è configurato nell'app stessa.",
|
||||
"buttonText": "pulsante",
|
||||
"canWeDebugText": "Vorresti che BombSquad segnalasse automaticamente bug, errori\ne informazioni sull'utilizzo direttamente allo sviluppatore?\n\nQuesti dati non contengono informazioni personali e aiutano a \nmantenere il gioco privo di bug e rallentamenti.",
|
||||
"canWeDebugText": "Vorresti che ${APP_NAME} segnalasse automaticamente bug, errori\ne informazioni sull'utilizzo direttamente allo sviluppatore?\n\nQuesti dati non contengono informazioni personali e aiutano a \nmantenere il gioco privo di bug e rallentamenti.",
|
||||
"cancelText": "Annulla",
|
||||
"cantConfigureDeviceText": "Spiacente, ${DEVICE} non è configurabile.",
|
||||
"challengeEndedText": "Questa sfida è finita.",
|
||||
"chatMuteText": "Silenzia Chat",
|
||||
"chatMutedText": "Chat Silenziata",
|
||||
"chatUnMuteText": "Smuta Chat",
|
||||
"chests": {
|
||||
"prizeOddsText": "Possibilità di vincita",
|
||||
"reduceWaitText": "Diminiusci Attesa",
|
||||
"slotDescriptionText": "Questo spazio può tenere un forziere.\n\nOttieni casse giocando livelli nella campagna,\nclassificandoti nei tornei, e completando\nobiettivi.",
|
||||
"slotText": "Slot Forziere ${NUM}",
|
||||
"slotsFullWarningText": "ATTENZIONE: Tutti gli spazi per casse sono pieni.\nLe casse che otterrai in questa partita saranno perse.",
|
||||
"unlocksInText": "Si Sblocca Tra"
|
||||
},
|
||||
"choosingPlayerText": "<scelta giocatore>",
|
||||
"claimText": "Ottieni",
|
||||
"codesExplainText": "i codici sono forniti dallo sviluppatore per\nscoprire e correggere problemi all'account.",
|
||||
"completeThisLevelToProceedText": "Devi completare questo\nlivello per procedere!",
|
||||
"completionBonusText": "Competizione bonus",
|
||||
|
|
@ -516,7 +529,7 @@
|
|||
"toRankedText": "Al prossimo livello",
|
||||
"totalText": "Totale",
|
||||
"tournamentInfoText": "Competi per punteggi alti con\naltri giocatori della tua lega.\n\nI premi sono assegnati ai giocatori con\ni punteggi più alti quando il tempo del torneo scade.",
|
||||
"welcome1Text": "Benvenuto in ${LEAGUE}. Puoi migliorare il tuo\n livello lega guadagnando stelle, completando\n obbiettivi, e vincendo i trofei.",
|
||||
"welcome1Text": "Benvenuto in ${LEAGUE}. Puoi migliorare il tuo\n livello lega guadagnando stelle, completando\n obiettivi, e vincendo i trofei.",
|
||||
"welcome2Text": "Puoi anche guadagnare biglietti con molte attività simili.\nI biglietti possono essere usato per sbloccare nuovi capitoli, mappe e\nmini-giochi, per entrare nei tornei ed altro.",
|
||||
"yourPowerRankingText": "La tua posizione assoluta"
|
||||
},
|
||||
|
|
@ -587,6 +600,7 @@
|
|||
"disableXInputDescriptionText": "Permette l'uso di più di 4 pulsantiere, ma potrebbe anche non funzionare.",
|
||||
"disableXInputText": "Disabilita XInput",
|
||||
"disabledText": "DISABILITATO",
|
||||
"discardText": "Butta",
|
||||
"discordFriendsText": "Cerchi altri con cui giocare?\nEntra nel nostro server Discord e fatti nuovi amici!",
|
||||
"discordJoinText": "Entra nel server Discord",
|
||||
"doneText": "Fatto",
|
||||
|
|
@ -675,6 +689,8 @@
|
|||
"errorText": "Errore",
|
||||
"errorUnknownText": "errore sconosciuto",
|
||||
"exitGameText": "Uscire da ${APP_NAME}?",
|
||||
"expiredAgoText": "Scaduta ${T} fa",
|
||||
"expiresInText": "Scade tra ${T}",
|
||||
"exportSuccessText": "'${NAME}' esportato",
|
||||
"externalStorageText": "Memoria Esterna",
|
||||
"failText": "Perso",
|
||||
|
|
@ -741,6 +757,7 @@
|
|||
"copyCodeConfirmText": "Codice copiato negli appunti!",
|
||||
"copyCodeText": "Copia il codice",
|
||||
"dedicatedServerInfoText": "Per risultati migliori, crea un server dedicato. Vedi bombsquadgame.com/server per scoprire come.",
|
||||
"descriptionShortText": "Utilizza la finestra raduna per creare un party.",
|
||||
"disconnectClientsText": "Questo disconnetterà ${COUNT} giocatore/i\nnel tuo gruppo. Sei sicuro?",
|
||||
"earnTicketsForRecommendingAmountText": "I tuoi amici riceveranno ${COUNT} biglietti se proveranno il gioco\n(anche tu riceverai ${YOU_COUNT} biglietti per ogni amico che lo farà)",
|
||||
"earnTicketsForRecommendingText": "Condividi il gioco\nper biglietti gratis...",
|
||||
|
|
@ -860,6 +877,12 @@
|
|||
"youHaveShortText": "Hai ${COUNT}",
|
||||
"youHaveText": "Hai ${COUNT} biglietti"
|
||||
},
|
||||
"goldPass": {
|
||||
"desc1InfTokensText": "Gettoni infiniti.",
|
||||
"desc2NoAdsText": "Niente pubblicità.",
|
||||
"desc3ForeverText": "Per sempre.",
|
||||
"goldPassText": "Pass d'Oro"
|
||||
},
|
||||
"googleMultiplayerDiscontinuedText": "Mi dispiace, il servizio multiplayer di Google non è più disponibile.\nSto lavorando per sostituirlo il più velocemente possibile.\nFino a quando non troverò una soluzione, prova un altro metodo per connetterti.\n-Eric",
|
||||
"googlePlayPurchasesNotAvailableText": "Gli acquisti Google Play non sono disponibili.\nPotresti dover aggiornare lo store.",
|
||||
"googlePlayServicesNotAvailableText": "Google Play Services non è disponibile.\nAlcune funzionalità dell'app saranno disattivate.",
|
||||
|
|
@ -938,6 +961,7 @@
|
|||
"importText": "Importa",
|
||||
"importingText": "Importando...",
|
||||
"inGameClippedNameText": "Nel gioco ci sarà\n\"${NAME}\"",
|
||||
"inboxText": "Posta",
|
||||
"installDiskSpaceErrorText": "ERRORE: Impossibile completare l'installazione. \nPotresti aver esaurito lo spazio sul tuo dispositivo. \nLibera un po' di spazio e prova di nuovo.",
|
||||
"internal": {
|
||||
"arrowsToExitListText": "Premi ${LEFT} o ${RIGHT} per uscire dalla serie",
|
||||
|
|
@ -994,12 +1018,14 @@
|
|||
"touchScreenJoinWarningText": "Ti sei unito al gioco con il touchscreen.\nSe è stato un errore, premi 'Menu->Lascia Gioco'.",
|
||||
"touchScreenText": "TouchScreen",
|
||||
"trialText": "prova",
|
||||
"unableToCompleteTryAgainText": "Impossibile completare ciò al momento.\nPerfavore riprovare.",
|
||||
"unableToResolveHostText": "Errore: impossibile connettersi all'host",
|
||||
"unavailableNoConnectionText": "Non è al momento disponibile (dipende dalla tua connessione?)",
|
||||
"vrOrientationResetCardboardText": "Usa questo per ripristinare l'orientamento del VR.\nPer giocare avrai bisogno di un controller esterno.",
|
||||
"vrOrientationResetText": "Ripristina orientamento VR.",
|
||||
"willTimeOutText": "(se inattivo potrai riprendere il controllo)"
|
||||
},
|
||||
"inventoryText": "Inventario",
|
||||
"jumpBoldText": "SALTO",
|
||||
"jumpText": "Salta",
|
||||
"keepText": "Mantieni",
|
||||
|
|
@ -1046,8 +1072,11 @@
|
|||
"seasonEndsMinutesText": "La stagione finisce tra ${NUMBER} minuti.",
|
||||
"seasonText": "Stagione ${NUMBER}",
|
||||
"tournamentLeagueText": "Devi raggiungere la lega ${NAME} per partecipare a questo torneo.",
|
||||
"trophyCountsResetText": "Il numero dei trofei verra azzerato la prossima stagione."
|
||||
"trophyCountsResetText": "Il numero dei trofei verra azzerato la prossima stagione.",
|
||||
"upToDateBonusDescriptionText": "I giocatori che utilizzano una versione recente del\ngioco otterranno un bonus del ${PERCENT}% qui.",
|
||||
"upToDateBonusText": "Bonus Aggiornato"
|
||||
},
|
||||
"learnMoreText": "Scopri di più",
|
||||
"levelBestScoresText": "Miglior punteggio in ${LEVEL}",
|
||||
"levelBestTimesText": "Miglior tempo in ${LEVEL}",
|
||||
"levelFastestTimesText": "Tempo migliore su ${LEVEL}",
|
||||
|
|
@ -1094,6 +1123,8 @@
|
|||
"modeArcadeText": "Modalità Arcade",
|
||||
"modeClassicText": "Modalità Classica",
|
||||
"modeDemoText": "Modalità Demo",
|
||||
"moreSoonText": "Di più in arrivo...",
|
||||
"mostDestroyedPlayerText": "Giocatore più distrutto",
|
||||
"mostValuablePlayerText": "Giocatore Più Bravo",
|
||||
"mostViolatedPlayerText": "Giocatore Più Ucciso",
|
||||
"mostViolentPlayerText": "Giocatore Più Violento",
|
||||
|
|
@ -1110,6 +1141,7 @@
|
|||
"nameSuicideText": "${NAME} si è suicidato.",
|
||||
"nameText": "Nome",
|
||||
"nativeText": "Nativa",
|
||||
"newExclaimText": "Novità!",
|
||||
"newPersonalBestText": "Nuovo record personale!",
|
||||
"newTestBuildAvailableText": "Una nuova versione beta è disponibile (${VERSION} build ${BUILD}).\nScaricala da ${ADDRESS}",
|
||||
"newText": "Nuovo",
|
||||
|
|
@ -1121,6 +1153,7 @@
|
|||
"noExternalStorageErrorText": "Nessun archiviatore esterno trovato su questo dispositivo",
|
||||
"noGameCircleText": "Errore: non hai effettuato il login su GameCircle",
|
||||
"noJoinCoopMidwayText": "Non puoi entrare in una partita cooperativa già iniziata.",
|
||||
"noMessagesText": "Nessun messaggio.",
|
||||
"noPluginsInstalledText": "Nessun Plugin Installato",
|
||||
"noProfilesErrorText": "Non hai un profilo giocatore, quindi sei bloccato con '${NAME}'.\nVai su Impostazioni > Profili giocatore per creare un profilo personale.",
|
||||
"noScoresYetText": "Ancora nessun punteggio.",
|
||||
|
|
@ -1130,6 +1163,7 @@
|
|||
"noValidMapsErrorText": "Non sono state trovate mappe valide per questo tipo di gioco.",
|
||||
"notEnoughPlayersRemainingText": "Non ci sono più abbastanza giocatori: esci e inizia un'altra partita.",
|
||||
"notEnoughPlayersText": "Hai bisogno di almeno ${COUNT} giocatori per iniziare questa partita!",
|
||||
"notEnoughTicketsText": "Non hai abbastanza biglietti fra",
|
||||
"notNowText": "Non ora",
|
||||
"notSignedInErrorText": "Per fare questo, devi accedere.",
|
||||
"notSignedInGooglePlayErrorText": "Per fare questo devi accedere a Google Play.",
|
||||
|
|
@ -1142,6 +1176,9 @@
|
|||
"onText": "Attiva",
|
||||
"oneMomentText": "Un Momento...",
|
||||
"onslaughtRespawnText": "${PLAYER} ritornerà all'ondata ${WAVE}",
|
||||
"openMeText": "Aprimi!",
|
||||
"openNowText": "Apri Ora",
|
||||
"openText": "Apri",
|
||||
"orText": "${A} o ${B}",
|
||||
"otherText": "Altro",
|
||||
"outOfText": "(#${RANK} su ${ALL})",
|
||||
|
|
@ -1235,6 +1272,8 @@
|
|||
"punchText": "Pugno",
|
||||
"purchaseForText": "Acquista per ${PRICE}",
|
||||
"purchaseGameText": "Acquista il gioco",
|
||||
"purchaseNeverAvailableText": "Purtroppo, gli acquisti non sono disponibili su questa versione.\nProva ad accedere al tuo account su un'altra piattaforma e fare gli acquisti lì.",
|
||||
"purchaseNotAvailableText": "Non disponibile per l'acquisto.",
|
||||
"purchasingText": "Acquisto in corso...",
|
||||
"quitGameText": "Uscire da ${APP_NAME}?",
|
||||
"quittingIn5SecondsText": "Uscendo in 5 secondi...",
|
||||
|
|
@ -1277,6 +1316,7 @@
|
|||
"version_mismatch": "Incompatibilità di versione.\nAssicurati che BombSquad e BombSquad Remote\nsiano alla stessa versione e riprova."
|
||||
},
|
||||
"removeInGameAdsText": "Sblocca \"${PRO}\" nel negozio per rimuovere le pubblicità.",
|
||||
"removeInGameAdsTokenPurchaseText": "PER UN TEMPO LIMITATO: Acquista QUALSIASI pacco di gettoni per rimuovere la pubblicità.",
|
||||
"renameText": "Rinomina",
|
||||
"replayEndText": "Fine Replay",
|
||||
"replayNameDefaultText": "Replay Ultima Partita",
|
||||
|
|
@ -1338,6 +1378,8 @@
|
|||
"enterPromoCodeText": "Inserisci il Codice",
|
||||
"forTestingText": "Note: questi valori sono solo di prova e saranno cancellati uscendo dalla app.",
|
||||
"helpTranslateText": "Le traduzioni di ${APP_NAME} sono un contributo\ndella comunità. Se vuoi contribuire o correggere una\ntraduzione, segui il link qui sotto. Grazie in anticipo!",
|
||||
"insecureConnectionsDescriptionText": "non è consigliato, ma potrebbe consentire\ndi giocare online da regioni o reti protette",
|
||||
"insecureConnectionsText": "Usa connessioni non sicure",
|
||||
"kickIdlePlayersText": "Caccia i giocatori inattivi",
|
||||
"kidFriendlyModeText": "Modalità per bambini (violenza ridotta e altro)",
|
||||
"languageText": "Lingua",
|
||||
|
|
@ -1398,6 +1440,7 @@
|
|||
},
|
||||
"spaceKeyText": "spazio",
|
||||
"statsText": "statistiche",
|
||||
"stopRemindingMeText": "Non Ricordarmelo Più",
|
||||
"storagePermissionAccessText": "Richiede l'accesso alla memoria locale",
|
||||
"store": {
|
||||
"alreadyOwnText": "Hai già acquistato ${NAME}!",
|
||||
|
|
@ -1461,6 +1504,7 @@
|
|||
"testBuildValidatedText": "Build Di Prova Validata; Divertiti!",
|
||||
"thankYouText": "Grazie per il supporto! Goditi il gioco!!",
|
||||
"threeKillText": "TRIPLA UCCISIONE!!",
|
||||
"ticketsDescriptionText": "I Biglietti si usano per sbloccare personaggi,\nmappe, minigiochi, ed altro nel negozio.\n\nI Biglietti si possono trovare nei forzieri e vincere\nnelle campagne, nei tornei, e con gli obiettivi trofeo.",
|
||||
"timeBonusText": "Bonus Tempo",
|
||||
"timeElapsedText": "Tempo trascorso",
|
||||
"timeExpiredText": "Tempo Scaduto",
|
||||
|
|
@ -1471,10 +1515,24 @@
|
|||
"tipText": "Consiglio",
|
||||
"titleText": "BombSquad",
|
||||
"titleVRText": "BombSquad VR",
|
||||
"tokens": {
|
||||
"getTokensText": "Ottieni Gettoni",
|
||||
"notEnoughTokensText": "Non hai abbastanza gettoni!",
|
||||
"numTokensText": "${COUNT} Gettoni",
|
||||
"openNowDescriptionText": "Hai gettoni sufficienti\nper aprire ora - non\nserve aspettare.",
|
||||
"shinyNewCurrencyText": "La nuovissima valuta di BombSquad.",
|
||||
"tokenPack1Text": "Pacco di Gettoni Mini",
|
||||
"tokenPack2Text": "Pacco di Gettoni Medio",
|
||||
"tokenPack3Text": "Pacco di Gettoni Grande",
|
||||
"tokenPack4Text": "Pacco di Gettoni Enorme",
|
||||
"tokensDescriptionText": "I gettoni si usano per accelerare lo sblocco dei forzieri\ne per altri acquisti di gioco o legati all'account.\n\nPuoi vincere gettoni nel gioco, o acquistali\ndai pacchetti. Oppure acquista un Pass Oro per ottenere\ngettoni infiniti senza più preoccupazioni.",
|
||||
"youHaveGoldPassText": "Hai un Pass d'Oro.\nTutti gli acquisti di gettoni sono gratuiti.\nDivertiti!"
|
||||
},
|
||||
"topFriendsText": "Gli amici migliori",
|
||||
"tournamentCheckingStateText": "Controllo stato torneo in corso; attendere...",
|
||||
"tournamentEndedText": "Questo torneo è finito. Ne partirà un altro a breve.",
|
||||
"tournamentEntryText": "Partecipa al Torneo",
|
||||
"tournamentFinalStandingsText": "Posizioni Finali",
|
||||
"tournamentResultsRecentText": "Risultati recenti del torneo",
|
||||
"tournamentStandingsText": "Classifica del torneo",
|
||||
"tournamentText": "Torneo",
|
||||
|
|
@ -1548,6 +1606,18 @@
|
|||
"Uber Onslaught": "Assalto Ultra",
|
||||
"Uber Runaround": "Girotondo Ultra"
|
||||
},
|
||||
"displayItemNames": {
|
||||
"${C} Tickets": "${C} Biglietti",
|
||||
"${C} Tokens": "${C} Gettoni",
|
||||
"Chest": "Forziere",
|
||||
"L1 Chest": "Forziere Lv.1",
|
||||
"L2 Chest": "Forziere Lv.2",
|
||||
"L3 Chest": "Forziere Lv.3",
|
||||
"L4 Chest": "Forziere Lv.4",
|
||||
"L5 Chest": "Forziere Lv.5",
|
||||
"L6 Chest": "Forziere Lv.6",
|
||||
"Unknown Chest": "Forziere Ignoto"
|
||||
},
|
||||
"gameDescriptions": {
|
||||
"Be the chosen one for a length of time to win.\nKill the chosen one to become it.": "Per vincere, sii il prescelto per un determinato tempo.\nUccidi il prescelto per diventarlo.",
|
||||
"Bomb as many targets as you can.": "Bombarda più bersagli che puoi.",
|
||||
|
|
@ -1653,6 +1723,7 @@
|
|||
"Korean": "Koreano",
|
||||
"Malay": "Malese",
|
||||
"Persian": "Persiano",
|
||||
"PirateSpeak": "Piratese",
|
||||
"Polish": "Polacco",
|
||||
"Portuguese": "Portoghese",
|
||||
"Romanian": "Rumeno",
|
||||
|
|
@ -1727,6 +1798,7 @@
|
|||
"Cheating detected; scores and prizes suspended for ${COUNT} days.": "Individuato imbroglio: punteggi e premi sospesi per ${COUNT} giorni.",
|
||||
"Could not establish a secure connection.": "Impossibile stabilire una connessione sicura.",
|
||||
"Daily maximum reached.": "Limite massimo giornaliero raggiunto.",
|
||||
"Daily sign-in reward": "Premio d'accesso giornaliero",
|
||||
"Entering tournament...": "Entrando nel torneo...",
|
||||
"Invalid code.": "Codice non valido.",
|
||||
"Invalid payment; purchase canceled.": "Pagamento non valido; acquisto annullato.",
|
||||
|
|
@ -1736,11 +1808,14 @@
|
|||
"Item unlocked!": "Oggetto sbloccato!",
|
||||
"LINKING DENIED. ${ACCOUNT} contains\nsignificant data that would ALL BE LOST.\nYou can link in the opposite order if you'd like\n(and lose THIS account's data instead)": "Collegamento rifiutato. ${ACCOUNT} contiene\ndati importanti che verranno TUTTI PERSI.\nPuoi collegarlo nell'ordine opposto se preferisci\n(e perdere i dati di QUESTO account)",
|
||||
"Link account ${ACCOUNT} to this account?\nAll existing data on ${ACCOUNT} will be lost.\nThis can not be undone. Are you sure?": "Vuoi davvero collegare l'account ${ACCOUNT} a questo account?\nTutti i dati presenti in ${ACCOUNT} andranno persi.\nLa procedura non può essere annullata. Sei sicuro?",
|
||||
"Longer streaks lead to better rewards.": "Le sequenze lunghe danno premi migliori.",
|
||||
"Max number of playlists reached.": "Numero massimo di playlist raggiunto.",
|
||||
"Max number of profiles reached.": "Numero massimo di profili raggiunto.",
|
||||
"Maximum friend code rewards reached.": "Numero massimo di richieste d'amicizia inviate",
|
||||
"Message is too long.": "Il messaggio è troppo lungo.",
|
||||
"New tournament result!": "Nuovi risultati del torneo!",
|
||||
"No servers are available. Please try again soon.": "Nessun server disponibile,prova più tardi.",
|
||||
"No slots available. Free a slot and try again.": "Nessuno slot disponibile. Liberane uno e riprova.",
|
||||
"Profile \"${NAME}\" upgraded successfully.": "Il profilo \"${NAME}\" è stato aggiornato con successo.",
|
||||
"Profile could not be upgraded.": "Il profilo non è potuto essere aggiornato.",
|
||||
"Purchase successful!": "Acquistato con successo!",
|
||||
|
|
@ -1750,7 +1825,9 @@
|
|||
"Sorry, this code has already been used.": "Spiacente, questo codice è già stato usato.",
|
||||
"Sorry, this code has expired.": "Spiacente, questo codice è scaduto.",
|
||||
"Sorry, this code only works for new accounts.": "Spiacente, questo codice funziona solo per nuovi account.",
|
||||
"Sorry, this has expired.": "Spiacente, è scaduto.",
|
||||
"Still searching for nearby servers; please try again soon.": "Continuo a cercare dei server.Per favore prova più tardi.",
|
||||
"Streak: ${NUM} days": "Sequenza: ${NUM} giorni",
|
||||
"Temporarily unavailable; please try again later.": "Al momento non disponibile; prova più tardi.",
|
||||
"The tournament ended before you finished.": "Il torneo è terminato prima che tu abbia finito.",
|
||||
"This account cannot be unlinked for ${NUM} days.": "Questo account non può essere scollegato per ${NUM} giorni.",
|
||||
|
|
@ -1761,19 +1838,28 @@
|
|||
"Tournaments require ${VERSION} or newer": "I tornei richiedono ${VERSION} o superiore",
|
||||
"Unlink ${ACCOUNT} from this account?\nAll data on ${ACCOUNT} will be reset.\n(except for achievements in some cases)": "Scollegare l'account ${ACCOUNT} da questo account?\nTutti i dati su ${ACCOUNT} andranno cancellati.\n(eccetto per i trofei in alcuni casi)",
|
||||
"WARNING: complaints of hacking have been issued against your account.\nAccounts found to be hacking will be banned. Please play fair.": "ATTENZIONE: tentativi di hacking sono stati segnalati per il tuo account.\nGli account scoperti in tentativi di hacking saranno bannati. Gioca pulito.",
|
||||
"Wait reduced!": "Tempo d'attesa ridotto!",
|
||||
"Warning: This version of the game is limited to old account data; things may appear missing or out of date.\nPlease upgrade to a newer version of the game to see your latest account data.": "Attenzione: Questa versione del gioco può accedere solo a vecchi dati account; potrebbero mancare o non essere aggiornati.\nPassa ad una versione più recente del gioco per visualizzare gli ultimi dati account.",
|
||||
"Would you like to link your device account to this one?\n\nYour device account is ${ACCOUNT1}\nThis account is ${ACCOUNT2}\n\nThis will allow you to keep your existing progress.\nWarning: this cannot be undone!\n": "Vuoi collegare il tuo account di dispositivo a questo?\n\nIl tuo account di dispositivo è ${ACCOUNT1}\nQuesto account è ${ACCOUNT2}\n\nQuesta operazione ti permetterà di conservare i tuoi progressi esistenti.\nAttenzione: l'operazione non può essere annullata!",
|
||||
"You already own this!": "È già tuo!",
|
||||
"You can join in ${COUNT} seconds.": "Potrai entrare in ${COUNT} secondi",
|
||||
"You don't have enough tickets for this!": "Non hai abbastanza biglietti per questo!",
|
||||
"You don't own that.": "Non lo possiedi",
|
||||
"You got ${COUNT} tickets!": "Hai ${COUNT} biglietti!",
|
||||
"You got ${COUNT} tokens!": "Hai ottenuto ${COUNT} gettoni!",
|
||||
"You got a ${ITEM}!": "Hai ricevuto un ${ITEM}!",
|
||||
"You got a chest!": "Hai ottenuto un forziere!",
|
||||
"You got an achievement reward!": "Hai ottenuto un premio da un trofeo!",
|
||||
"You have been promoted to a new league; congratulations!": "Sei stato promosso a una nuova lega, Congratulazioni!",
|
||||
"You lost a chest! (All your chest slots were full)": "Hai perso un forziere! (I tuoi slot forziere erano pieni)",
|
||||
"You must update the app to view this.": "Aggiorna l'app per visualizzare.",
|
||||
"You must update to a newer version of the app to do this.": "Devi aggiornare a una versione nuova dell'app per poter fare questo.",
|
||||
"You must update to the newest version of the game to do this.": "Devi aggiornare ad una nuova versione del gioco per fare ciò.",
|
||||
"You must wait a few seconds before entering a new code.": "Devi aspettare qualche secondo prima di inserire un nuovo codice.",
|
||||
"You placed #${RANK} in a tournament!": "Hai raggiunto #${RANK}° posto in un torneo!",
|
||||
"You ranked #${RANK} in the last tournament. Thanks for playing!": "Sei il numero ${RANK} dell'ultimo torneo. Grazie per aver giocato!",
|
||||
"Your account was rejected. Are you signed in?": "Il tuo account è stato rifiutato. Sei già iscritto?",
|
||||
"Your ad views are not registering. Ad options will be limited for a while.": "Le visualizzazioni dei tuoi annunci non vengono registrate. Le opzioni degli annunci saranno limitate per un po'.",
|
||||
"Your copy of the game has been modified.\nPlease revert any changes and try again.": "La tua copia del gioco è stata modificata.\nPer favore, annulla le modifiche e riprova.",
|
||||
"Your friend code was used by ${ACCOUNT}": "Il tuo codice amico è stato usato da ${ACCOUNT}"
|
||||
},
|
||||
|
|
@ -1815,7 +1901,7 @@
|
|||
"Short": "Breve",
|
||||
"Shorter": "Più breve",
|
||||
"Solo Mode": "Modalità Testa a Testa",
|
||||
"Target Count": "Numero dì obbiettivi",
|
||||
"Target Count": "Numero dì obiettivi",
|
||||
"Time Limit": "Tempo limite"
|
||||
},
|
||||
"statements": {
|
||||
|
|
@ -1929,6 +2015,7 @@
|
|||
"twoKillText": "DOPPIA UCCISIONE!",
|
||||
"uiScaleText": "Dimensione Interfaccia",
|
||||
"unavailableText": "non disponibile",
|
||||
"unclaimedPrizesText": "Hai premi da riscattare!",
|
||||
"unconfiguredControllerDetectedText": "Rilevato controller non configurato:",
|
||||
"unlockThisInTheStoreText": "Deve essere sbloccato nel negozio",
|
||||
"unlockThisProfilesText": "Per creare più di ${NUM} profili, ti serve:",
|
||||
|
|
@ -1947,6 +2034,7 @@
|
|||
"usingItunesText": "Sto usando una app musicale per la colonna sonora...",
|
||||
"usingItunesTurnRepeatAndShuffleOnText": "Per favore, assicurati che la riproduzione casuale sia ATTIVA e che la ripetizione sia su TUTTO su iTunes.",
|
||||
"v2AccountLinkingInfoText": "Per collegare degli account V2, usa il tasto 'Gestisci Account'.",
|
||||
"v2AccountRequiredText": "Questo richiede un account V2. Aggiorna il tuo account e riprova.",
|
||||
"validatingBetaText": "Sto convalidando la beta...",
|
||||
"validatingTestBuildText": "Convalida Build Di Prova...",
|
||||
"viaText": "utilizzando",
|
||||
|
|
@ -1971,7 +2059,7 @@
|
|||
"renameReplayButtonText": "Rinomina\nReplay",
|
||||
"renameReplayText": "Rinomina \"${REPLAY}\" in:",
|
||||
"renameText": "Rinomina",
|
||||
"replayDeleteErrorText": "Errore cancellazione replay.",
|
||||
"replayDeleteErrorText": "Errore eliminazione del replay.",
|
||||
"replayNameText": "Nome Replay",
|
||||
"replayRenameErrorAlreadyExistsText": "Esiste già un replay con questo nome.",
|
||||
"replayRenameErrorInvalidName": "Impossibile rinominare replay; nome invalido.",
|
||||
|
|
@ -2025,5 +2113,6 @@
|
|||
},
|
||||
"yesAllowText": "Sì, permetti!",
|
||||
"yourBestScoresText": "I tuoi punteggi migliori",
|
||||
"yourBestTimesText": "I tuoi tempi migliori"
|
||||
"yourBestTimesText": "I tuoi tempi migliori",
|
||||
"yourPrizeText": "Il tuo premio:"
|
||||
}
|
||||
112
dist/ba_data/data/languages/korean.json
vendored
112
dist/ba_data/data/languages/korean.json
vendored
|
|
@ -7,7 +7,9 @@
|
|||
"campaignProgressText": "캠페인 진행 상황 [어려움]: ${PROGRESS}",
|
||||
"changeOncePerSeason": "한 시즌마다 바꿀수 있습니다.",
|
||||
"changeOncePerSeasonError": "다음 시즌으로 바뀔때까지 (${NUM} 일)기다려야 계정 이름을 바꿀수 있습니다.",
|
||||
"createAnAccountText": "계정 만들기",
|
||||
"customName": "이름 맞춤설정",
|
||||
"deleteAccountText": "계정 삭제",
|
||||
"googlePlayGamesAccountSwitchText": "다른 Google 계정을 전환하려면,\nGoogle Play 앱을 사용하세요",
|
||||
"linkAccountsEnterCodeText": "코드 입력",
|
||||
"linkAccountsGenerateCodeText": "코드 생성",
|
||||
|
|
@ -25,6 +27,7 @@
|
|||
"setAccountNameDesc": "당신 계정에 보여질 이름을 선택해주시오.\n연동된 계정 중 하나에서 이름을 사용하거나,\n또는 자기만의 독창적인 이름을 만들어서 사용할 수 있습니다.",
|
||||
"signInInfoText": "로그인해서 티켓을 수집하고 온라인으로 겨루며\n여러 기기에서 진행 상황을 공유하세요.",
|
||||
"signInText": "로그인",
|
||||
"signInWithAnEmailAddressText": "이메일 주소로 로그인",
|
||||
"signInWithDeviceInfoText": "(자동 계정은 이 기기에서만 이용할 수 있습니다)",
|
||||
"signInWithDeviceText": "기기 계정으로 로그인",
|
||||
"signInWithGameCircleText": "Game Circle로 로그인",
|
||||
|
|
@ -33,7 +36,7 @@
|
|||
"signInWithTestAccountText": "테스트 계정으로 로그인",
|
||||
"signInWithText": "${SERVICE}로 로그인하기",
|
||||
"signInWithV2InfoText": "(모든 플랫폼에서 작동하는 계정입니다)",
|
||||
"signInWithV2Text": "BombSquad 계정으로 로그인",
|
||||
"signInWithV2Text": "${APP_NAME} 계정으로 로그인",
|
||||
"signOutText": "로그아웃",
|
||||
"signingInText": "로그인 중...",
|
||||
"signingOutText": "로그아웃 중...",
|
||||
|
|
@ -342,6 +345,8 @@
|
|||
"allowText": "허용",
|
||||
"alreadySignedInText": "귀하의 계정은 다른 기기에서 로그인되었습니다. \n계정을 전환하거나 다른 기기에서 게임을 종료하고 \n다시 시도하십시오.",
|
||||
"apiVersionErrorText": "${NAME} 모듈을 불러올 수 없습니다; ${VERSION_USED} api 버전입니다; ${VERSION_REQUIRED} 버전이 필요합니다.",
|
||||
"applyText": "적용",
|
||||
"areYouSureText": "정말?",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(헤드폰이 연결된 때에만 '자동'이 이 옵션을 활성화합니다)",
|
||||
"headRelativeVRAudioText": "머리 비례 VR 오디오",
|
||||
|
|
@ -363,14 +368,22 @@
|
|||
"boostText": "증가",
|
||||
"bsRemoteConfigureInAppText": "${REMOTE_APP_NAME}(은)는 앱 자체에 구성되어 있습니다.",
|
||||
"buttonText": "버튼",
|
||||
"canWeDebugText": "BombSquad가 버그, 충돌 및 기본 사용 정보를\n자동으로 개발자에게 신고하도록 하시겠습니까?\n\n이 데이터에 개인 정보는 포함되지 않으며 게임이\n버그 없이 원활하게 실행되도록 하는 데 도움이 됩니다.",
|
||||
"canWeDebugText": "${APP_NAME}가 버그, 충돌 및 기본 사용 정보를\n자동으로 개발자에게 신고하도록 하시겠습니까?\n\n이 데이터에 개인 정보는 포함되지 않으며 게임이\n버그 없이 원활하게 실행되도록 하는 데 도움이 됩니다.",
|
||||
"cancelText": "취소",
|
||||
"cantConfigureDeviceText": "죄송합니다만 ${DEVICE}(은)는 구성할 수 없습니다.",
|
||||
"challengeEndedText": "이 챌린지는 종료되었습니다.",
|
||||
"chatMuteText": "채팅 음소거",
|
||||
"chatMutedText": "채팅 음소거됨.",
|
||||
"chatUnMuteText": "채팅 음소거 해제",
|
||||
"chests": {
|
||||
"prizeOddsText": "상금 확률",
|
||||
"reduceWaitText": "대기 시간 단축",
|
||||
"slotDescriptionText": "이 슬롯은 상자를 보관할 수 있습니다.\n\n캠페인 레벨을 플레이하고,\n토너먼트에서 순위를 매기고,\n업적을 달성하여 상자를 획득하세요.",
|
||||
"slotText": "상자 슬롯 ${NUM}",
|
||||
"slotsFullWarningText": "경고: 모든 상자 슬롯이 찼습니다.\n이 게임에서 획득한 상자는 모두 사라지게 됩니다."
|
||||
},
|
||||
"choosingPlayerText": "<플레이어 선택>",
|
||||
"claimText": "청구",
|
||||
"codesExplainText": "계정 문제를 진단하고 수정하기 위해\n개발자가 코드를 제공합니다.",
|
||||
"completeThisLevelToProceedText": "계속 진행하려면 이 레벨을\n완료해야 합니다!",
|
||||
"completionBonusText": "완료 보너스",
|
||||
|
|
@ -555,6 +568,7 @@
|
|||
"demoText": "체험판",
|
||||
"denyText": "거부",
|
||||
"deprecatedText": "더 이상 사용되지 않음",
|
||||
"descriptionText": "설명",
|
||||
"desktopResText": "데스크톱 해상도",
|
||||
"deviceAccountUpgradeText": "경고:\n 기기 계정(${NAME})으로 로그인하셨습니다.\n 기기 계정은 향후 업데이트에서 제거되기에\n 진행 상황을 유지하려면 V2 계정으로 업그레이드하세요.",
|
||||
"difficultyEasyText": "쉬움",
|
||||
|
|
@ -566,6 +580,7 @@
|
|||
"disableXInputDescriptionText": "4개 이상의 컨트롤러를 허용하지만 아마 잘 작동하지 않을 것입니다.",
|
||||
"disableXInputText": "엑스인풋 컨트롤러 비활성화",
|
||||
"disabledText": "비활성화만",
|
||||
"discardText": "버리기",
|
||||
"discordFriendsText": "함께 플레이할 새로운 친구를 찾고 싶으신가요?\n디스코드에 가입하여 새로운 친구를 찾아보세요!",
|
||||
"discordJoinText": "디스코드 가입",
|
||||
"doneText": "완료",
|
||||
|
|
@ -600,6 +615,7 @@
|
|||
"localProfileText": "(로컬 프로필)",
|
||||
"nameDescriptionText": "플레이어 이름",
|
||||
"nameText": "이름",
|
||||
"profileAlreadyExistsText": "해당 이름을 가진 프로필이 이미 존재합니다.",
|
||||
"randomText": "무작위",
|
||||
"titleEditText": "프로필 편집",
|
||||
"titleNewText": "새 프로필",
|
||||
|
|
@ -647,6 +663,8 @@
|
|||
"errorText": "오류",
|
||||
"errorUnknownText": "알 수 없는 오류",
|
||||
"exitGameText": "${APP_NAME}를 종료하시겠습니까?",
|
||||
"expiredAgoText": "만료 ${T} 전",
|
||||
"expiresInText": "${T} 남았습니다.",
|
||||
"exportSuccessText": "'${NAME}' 를 내보냈습니다.",
|
||||
"externalStorageText": "외부 저장소",
|
||||
"failText": "실패",
|
||||
|
|
@ -681,6 +699,8 @@
|
|||
"duplicateText": "플레이 목록\n복사",
|
||||
"editText": "플레이 목록\n편집",
|
||||
"newText": "새\n플레이 목록",
|
||||
"pointsToWinText": "승리 포인트",
|
||||
"seriesLengthText": "시리즈 길이",
|
||||
"showTutorialText": "튜토리얼 보기",
|
||||
"shuffleGameOrderText": "게임 순서 섞기",
|
||||
"titleText": "${TYPE} 플레이 목록 커스터마이징"
|
||||
|
|
@ -706,6 +726,7 @@
|
|||
"copyCodeConfirmText": "코드가 클립보드에 복사되었습니다.",
|
||||
"copyCodeText": "코드 복사",
|
||||
"dedicatedServerInfoText": "최선의 결과를 위해 전용 서버를 구축하세요. 자세한 사항은 bombsquadgame.com/server를 참조해주십시오.",
|
||||
"descriptionShortText": "파티 모집 창을 이용해 파티를 구성하세요.",
|
||||
"disconnectClientsText": "파티 내의 플레이어 ${COUNT}명의 연결이\n끊어집니다. 괜찮습니까?",
|
||||
"earnTicketsForRecommendingAmountText": "친구들은 게임을 시도하면 티켓 ${COUNT}장을 받습니다\n(귀하는 각각의 친구에 대해서 ${YOU_COUNT}장을 받습니다)",
|
||||
"earnTicketsForRecommendingText": "게임을 공유하고\n무료 티켓을 받으세요...",
|
||||
|
|
@ -718,10 +739,10 @@
|
|||
"friendHasSentPromoCodeText": "${NAME} 님이 ${APP_NAME} 티켓 ${COUNT}장을 보냄",
|
||||
"friendPromoCodeAwardText": "코드가 사용될 때마다 귀하는 티켓 ${COUNT}장을 받습니다.",
|
||||
"friendPromoCodeExpireText": "이 코드는 ${EXPIRE_HOURS}시간 후 만료되며 신규 플레이어에게만 적용됩니다.",
|
||||
"friendPromoCodeInstructionsText": "사용하려면 ${APP_NAME} 앱을 열고 '설정->고급->코드 입력'으로 이동합니다.\n지원되는 모든 플랫폼의 다운로드 링크는 bombsquadgame.com에서 확인하세요.",
|
||||
"friendPromoCodeInstructionsText": "사용하려면 ${APP_NAME}을 열고 \"설정->고급->정보 보내기\"로 이동합니다.\n지원되는 모든 플랫폼의 다운로드 링크는 bombsquadgame.com을 참조하세요.",
|
||||
"friendPromoCodeRedeemLongText": "최대 ${MAX_USES}명의 사람이 무료 티켓 ${COUNT}장과 교환할 수 있습니다.",
|
||||
"friendPromoCodeRedeemShortText": "게임에서 티켓 ${COUNT}장과 교환할 수 있습니다.",
|
||||
"friendPromoCodeWhereToEnterText": "('설정->고급->코드 입력')",
|
||||
"friendPromoCodeWhereToEnterText": "(\"설정->고급->정보 보내기\")",
|
||||
"getFriendInviteCodeText": "친구 초대 코드 받기",
|
||||
"googlePlayDescriptionText": "Google Play 플레이어들을 파티에 초대하세요.",
|
||||
"googlePlayInviteText": "초대",
|
||||
|
|
@ -817,6 +838,12 @@
|
|||
"youHaveShortText": "티켓 보유량: ${COUNT}",
|
||||
"youHaveText": "보유량: ${COUNT} 티켓"
|
||||
},
|
||||
"goldPass": {
|
||||
"desc1InfTokensText": "무한한 토큰.",
|
||||
"desc2NoAdsText": "광고 없음.",
|
||||
"desc3ForeverText": "영원히.",
|
||||
"goldPassText": "골든 패스"
|
||||
},
|
||||
"googleMultiplayerDiscontinuedText": "죄송하지만, 구글의 멀티플레이어 서비스는 더이상 이용할수가 없어요.\n지금 대체제에 가능한 빨리 작업중이에요.\n그 때까지는, 다른 접속 방법을 사용해주세요.\n-Eric",
|
||||
"googlePlayPurchasesNotAvailableText": "구매가 되지 않았습니다.\n아마 스토어 앱을 업데이트 해야 합니다.",
|
||||
"googlePlayServicesNotAvailableText": "Google Play 서비스를 사용할 수 없습니다.\n 일부 앱 기능이 비활성화될 수 있습니다.",
|
||||
|
|
@ -891,6 +918,7 @@
|
|||
"importText": "불러오기",
|
||||
"importingText": "불러오는 중...",
|
||||
"inGameClippedNameText": "게임 내에서는 다음과 같이 보여질 것입니다.\n\"${NAME}\"",
|
||||
"inboxText": "받은 편지함",
|
||||
"installDiskSpaceErrorText": "오류: 설치를 완료할 수 없습니다.\n기기에 공간이 부족한 것 같습니다.\n공간을 확보한 후 다시 시도해보세요.",
|
||||
"internal": {
|
||||
"arrowsToExitListText": "목록에서 나가려면 ${LEFT} 또는 ${RIGHT}를 누르세요",
|
||||
|
|
@ -945,12 +973,14 @@
|
|||
"timeOutText": "(${TIME}초 후 시간 초과)",
|
||||
"touchScreenJoinWarningText": "터치스크린을 이용해 가입했습니다.\n실수로 그러신 경우 '메뉴->게임 나가기'를 누르세요.",
|
||||
"touchScreenText": "터치스크린",
|
||||
"unableToCompleteTryAgainText": "지금은 완료할 수 없습니다.\n다시 시도해 주세요.",
|
||||
"unableToResolveHostText": "오류: 호스트를 확인할 수 없습니다.",
|
||||
"unavailableNoConnectionText": "이 기능은 현재 이용할 수 없습니다 (인터넷에 연결되지 않았습니까?)",
|
||||
"vrOrientationResetCardboardText": "이것을 이용해 VR 방향을 재설정합니다.\n게임을 플레이하려면 외부 컨트롤러가 필요합니다.",
|
||||
"vrOrientationResetText": "VR 방향이 재설정되었습니다.",
|
||||
"willTimeOutText": "(부재 중이면 시간 초과가 됩니다)"
|
||||
},
|
||||
"inventoryText": "인벤토리",
|
||||
"jumpBoldText": "점프",
|
||||
"jumpText": "점프",
|
||||
"keepText": "유지",
|
||||
|
|
@ -997,8 +1027,11 @@
|
|||
"seasonEndsMinutesText": "시즌은 ${NUMBER}분 후 종료됩니다.",
|
||||
"seasonText": "시즌 ${NUMBER}",
|
||||
"tournamentLeagueText": "이 토너먼트에 참가하려면 ${NAME} 리그에 도달해야 합니다.",
|
||||
"trophyCountsResetText": "트로피 수는 다음 시즌에 초기화됩니다."
|
||||
"trophyCountsResetText": "트로피 수는 다음 시즌에 초기화됩니다.",
|
||||
"upToDateBonusDescriptionText": "최신 버전의 게임을 실행하면 플레이어는 여기에서 \n${PERCENT}%의 보너스를 받습니다.",
|
||||
"upToDateBonusText": "최신 보너스"
|
||||
},
|
||||
"learnMoreText": "더 알아보기",
|
||||
"levelBestScoresText": "${LEVEL}의 최고 점수",
|
||||
"levelBestTimesText": "${LEVEL}의 최고 시간",
|
||||
"levelIsLockedText": "${LEVEL}(은)는 잠겼습니다.",
|
||||
|
|
@ -1042,6 +1075,8 @@
|
|||
"modeArcadeText": "아케이드 모드",
|
||||
"modeClassicText": "클래식 모드",
|
||||
"modeDemoText": "데모 모드",
|
||||
"moreSoonText": "더 많은 내용이 곧 다가옵니다...",
|
||||
"mostDestroyedPlayerText": "가장 많이 파괴된 플레이어",
|
||||
"mostValuablePlayerText": "가장 뛰어난 플레이어",
|
||||
"mostViolatedPlayerText": "가장 비참한 플레이어",
|
||||
"mostViolentPlayerText": "가장 난폭한 플레이어",
|
||||
|
|
@ -1058,6 +1093,7 @@
|
|||
"nameSuicideText": "${NAME} 님이 자살했습니다.",
|
||||
"nameText": "이름",
|
||||
"nativeText": "기본",
|
||||
"newExclaimText": "신규!",
|
||||
"newPersonalBestText": "새 개인 최고 기록!",
|
||||
"newTestBuildAvailableText": "새 테스트 빌드가 나왔습니다! (${VERSION} 빌드 ${BUILD}).\n${ADDRESS}에서 다운로드 하세요",
|
||||
"newText": "새",
|
||||
|
|
@ -1068,6 +1104,7 @@
|
|||
"noContinuesText": "(계속 없음)",
|
||||
"noExternalStorageErrorText": "이 기기에서 외부 저장소를 찾지 못했습니다.",
|
||||
"noGameCircleText": "오류: GameCircle에 로그인되지 않았습니다",
|
||||
"noMessagesText": "메시지 없음.",
|
||||
"noPluginsInstalledText": "설치된 플러그인 없음",
|
||||
"noScoresYetText": "아직 점수 없음.",
|
||||
"noServersFoundText": "서버를 찾을수 없음.",
|
||||
|
|
@ -1076,6 +1113,7 @@
|
|||
"noValidMapsErrorText": "이 게임 유형에 유효한 지도를 찾지 못했습니다.",
|
||||
"notEnoughPlayersRemainingText": "남은 플레이어가 충분하지 않습니다. 게임을 종료한 후 새로 시작하세요.",
|
||||
"notEnoughPlayersText": "이 게임을 시작하려면 ${COUNT}명 이상의 플레이어가 필요합니다!",
|
||||
"notEnoughTicketsText": "티켓이 부족합니다!",
|
||||
"notNowText": "다음에",
|
||||
"notSignedInErrorText": "이 작업을 하려면 로그인해야 합니다.",
|
||||
"notSignedInGooglePlayErrorText": "이 작업을 하려면 Google Play로 로그인해야 합니다.",
|
||||
|
|
@ -1088,6 +1126,9 @@
|
|||
"onText": "켬",
|
||||
"oneMomentText": "잠시만요...",
|
||||
"onslaughtRespawnText": "${PLAYER} 님은 ${WAVE} 웨이브에서 부활합니다",
|
||||
"openMeText": "나를 열어줘!",
|
||||
"openNowText": "당장 열기",
|
||||
"openText": "열기",
|
||||
"orText": "${A} 또는 ${B}",
|
||||
"otherText": "기타...",
|
||||
"outOfText": "(#${RANK} / ${ALL})",
|
||||
|
|
@ -1173,6 +1214,8 @@
|
|||
"punchText": "펀치",
|
||||
"purchaseForText": "${PRICE}에 구입",
|
||||
"purchaseGameText": "게임 구입",
|
||||
"purchaseNeverAvailableText": "죄송합니다. 이 빌드에서는 구매가 불가능합니다.\n다른 플랫폼에서 계정에 로그인하여 해당 플랫폼에서 구매를 시도해 보세요.",
|
||||
"purchaseNotAvailableText": "해당 구매는 불가능합니다.",
|
||||
"purchasingText": "구입 중...",
|
||||
"quitGameText": "${APP_NAME}를 종료하시겠습니까?",
|
||||
"quittingIn5SecondsText": "5초 후 종료됩니다...",
|
||||
|
|
@ -1214,6 +1257,7 @@
|
|||
"version_mismatch": "버전이 일치하지 않습니다.\nBombSquad 및 BombSquad Remote가\n최신 버전인지 확인한 후 다시 시도하세요."
|
||||
},
|
||||
"removeInGameAdsText": "게임 내 광고를 제거하려면 상점에서 \"${PRO}\"를 잠금 해제하세요.",
|
||||
"removeInGameAdsTokenPurchaseText": "기간 한정 특가: 토큰 팩을 구매하면 게임 내 광고를 제거할 수 있습니다.",
|
||||
"renameText": "이름 바꾸기",
|
||||
"replayEndText": "다시 보기 종료",
|
||||
"replayNameDefaultText": "마지막 게임 다시 보기",
|
||||
|
|
@ -1247,6 +1291,7 @@
|
|||
},
|
||||
"scoreWasText": "(이전: ${COUNT})",
|
||||
"selectText": "선택",
|
||||
"sendInfoDescriptionText": "계정 및 앱 상태 정보를 개발자에게 전송합니다.\n이름이나 전송 이유를 포함하세요.",
|
||||
"seriesWinLine1PlayerText": "님이 시리즈에서",
|
||||
"seriesWinLine1TeamText": "팀이 시리즈에서",
|
||||
"seriesWinLine1Text": "님이 시리즈에서",
|
||||
|
|
@ -1264,6 +1309,7 @@
|
|||
"alwaysUseInternalKeyboardDescriptionText": "(간편하고 사용하기 쉬운 텍스트 편집용 온스크린 키보드)",
|
||||
"alwaysUseInternalKeyboardText": "언제나 내부 키보드를 사용함",
|
||||
"benchmarksText": "벤치마크 및 스트레스 테스트",
|
||||
"devToolsText": "개발자 도구",
|
||||
"disableCameraGyroscopeMotionText": "시야 자이로스코프 동작 비활성 하기",
|
||||
"disableCameraShakeText": "화면 진동 비활성하기",
|
||||
"disableThisNotice": "(고급설정에서 이 알림을 중지 할 수 있습니다)",
|
||||
|
|
@ -1272,15 +1318,20 @@
|
|||
"enterPromoCodeText": "코드 입력",
|
||||
"forTestingText": "참고: 이 값들은 테스트용으로 앱을 종료하면 없어집니다.",
|
||||
"helpTranslateText": "${APP_NAME}의 비영어권 번역은 커뮤니티에서 지원된\n결과입니다. 공헌하거나 번역을 교정하고 싶으면\n아래 링크를 이용하세요. 감사합니다!",
|
||||
"insecureConnectionsDescriptionText": "권장하지는 않지만, 제한된 국가 또는 네트워크에서 온라인 플레이\n를 허용할 수 있습니다.",
|
||||
"insecureConnectionsText": "보안이 취약한 연결 사용",
|
||||
"kickIdlePlayersText": "부재 중 플레이어 추방",
|
||||
"kidFriendlyModeText": "어린이 보호 모드 (폭력 순화 등)",
|
||||
"languageText": "언어",
|
||||
"moddingGuideText": "모딩 가이드",
|
||||
"moddingToolsText": "모딩 도구",
|
||||
"mustRestartText": "이 설정이 적용되려면 게임을 다시 시작해야 합니다.",
|
||||
"netTestingText": "네트워크 테스트",
|
||||
"resetText": "재설정",
|
||||
"sendInfoText": "정보 보내기",
|
||||
"showBombTrajectoriesText": "폭탄 궤적 표시",
|
||||
"showDemosWhenIdleText": "유휴 상태일 때 데모 표시",
|
||||
"showDeprecatedLoginTypesText": "더 이상 사용되지 않는 로그인 유형 표시",
|
||||
"showDevConsoleButtonText": "개발자 콘솔 버튼 보이기",
|
||||
"showInGamePingText": "인게임 핑 보이기",
|
||||
"showPlayerNamesText": "플레이어 이름 표시",
|
||||
|
|
@ -1301,6 +1352,9 @@
|
|||
"signInWithGameCenterText": "Game Center 계정을 이용하려면\nGame Center 앱으로 로그인하세요.",
|
||||
"singleGamePlaylistNameText": "${GAME}만",
|
||||
"singlePlayerCountText": "1 플레이어",
|
||||
"sizeLargeText": "대형",
|
||||
"sizeMediumText": "중간",
|
||||
"sizeSmallText": "작음",
|
||||
"soloNameFilterText": "솔로 ${NAME}",
|
||||
"soundtrackTypeNames": {
|
||||
"CharSelect": "캐릭터 선택",
|
||||
|
|
@ -1385,6 +1439,7 @@
|
|||
"testBuildValidatedText": "테스트 빌드 확인 완료. 즐거운 시간 되세요!",
|
||||
"thankYouText": "지원해주셔서 감사합니다! 즐거운 시간 되세요!!",
|
||||
"threeKillText": "트리플 킬!!",
|
||||
"ticketsDescriptionText": "티켓은 상점에서 캐릭터, 맵, 미니게임 등을 잠금 해제하는 데 사\n용할 수 있습니다.\n\n티켓은 캠페인, 토너먼트, 업적을 통해 획득한 상자에서 찾을 수 \n있습니다.",
|
||||
"timeBonusText": "시간 보너스",
|
||||
"timeElapsedText": "시간 경과",
|
||||
"timeExpiredText": "시간 종료",
|
||||
|
|
@ -1395,10 +1450,23 @@
|
|||
"tipText": "팁",
|
||||
"titleText": "BombSquad",
|
||||
"titleVRText": "BombSquad VR",
|
||||
"tokens": {
|
||||
"getTokensText": "토큰 얻기",
|
||||
"notEnoughTokensText": "토큰이 부족합니다!",
|
||||
"numTokensText": "${COUNT}개 토큰",
|
||||
"shinyNewCurrencyText": "BombSquad의 반짝이는 새로운 화폐.",
|
||||
"tokenPack1Text": "작은 토큰 팩",
|
||||
"tokenPack2Text": "중간 토큰 팩",
|
||||
"tokenPack3Text": "큰 토큰 팩",
|
||||
"tokenPack4Text": "엄청 큰 토큰 팩",
|
||||
"tokensDescriptionText": "토큰은 상자 잠금 해제 속도를 높이고\n다른 게임 및 계정 기능에 사용됩니다.\n\n게임에서 토큰을 얻거나\n팩으로 구매할 수 있습니다. 또는 무한한 토큰을 위해 골드 패스를 구매하면\n다시는 그 토큰에 대해서는 듣지 못할 겁니다.",
|
||||
"youHaveGoldPassText": "골드 패스가 있습니다.\n모든 토큰 구매는 무료입니다.\n즐기세요!"
|
||||
},
|
||||
"topFriendsText": "절친들",
|
||||
"tournamentCheckingStateText": "토너먼트 상태를 확인 중입니다. 잠시 기다리세요...",
|
||||
"tournamentEndedText": "이 토너먼트는 종료되었습니다. 새 토너먼트가 곧 시작됩니다.",
|
||||
"tournamentEntryText": "토너먼트 참가",
|
||||
"tournamentFinalStandingsText": "최종 순위",
|
||||
"tournamentResultsRecentText": "최근 토너먼트 결과",
|
||||
"tournamentStandingsText": "토너먼트 성적",
|
||||
"tournamentText": "토너먼트",
|
||||
|
|
@ -1454,6 +1522,18 @@
|
|||
"Uber Onslaught": "슈퍼 맹습",
|
||||
"Uber Runaround": "슈퍼 행군"
|
||||
},
|
||||
"displayItemNames": {
|
||||
"${C} Tickets": "${C} 티켓",
|
||||
"${C} Tokens": "${C} 토큰",
|
||||
"Chest": "상자",
|
||||
"L1 Chest": "레벨 1 상자",
|
||||
"L2 Chest": "레벨 2 상자",
|
||||
"L3 Chest": "레벨 3 상자",
|
||||
"L4 Chest": "레벨 4 상자",
|
||||
"L5 Chest": "레벨 5 상자",
|
||||
"L6 Chest": "레벨 6 상자",
|
||||
"Unknown Chest": "알려지지 않은 상자"
|
||||
},
|
||||
"gameDescriptions": {
|
||||
"Be the chosen one for a length of time to win.\nKill the chosen one to become it.": "승리하려면 일정 시간 동안 선택된 자가 되세요.\n그 지위를 뺏으려면 선택된 자를 처치하세요.",
|
||||
"Bomb as many targets as you can.": "가능한 한 많은 목표에 폭탄을 던지세요.",
|
||||
|
|
@ -1558,6 +1638,7 @@
|
|||
"Korean": "한국어",
|
||||
"Malay": "말레이어",
|
||||
"Persian": "페르시아어",
|
||||
"PirateSpeak": "해적의 말",
|
||||
"Polish": "폴란드어",
|
||||
"Portuguese": "포르투갈어",
|
||||
"Romanian": "루마니아어",
|
||||
|
|
@ -1629,6 +1710,7 @@
|
|||
"Cheating detected; scores and prizes suspended for ${COUNT} days.": "부정행위 사용이 감지되었습니다. ${COUNT}일 간 점수 및 상품이 중지됩니다.",
|
||||
"Could not establish a secure connection.": "보안 연결을 수립할 수 없습니다.",
|
||||
"Daily maximum reached.": "일일 한도에 도달했습니다.",
|
||||
"Daily sign-in reward": "매일 로그인 보상",
|
||||
"Entering tournament...": "토너먼트에 참가 중...",
|
||||
"Invalid code.": "잘못된 코드.",
|
||||
"Invalid payment; purchase canceled.": "구매 무효화; 구매가 취소되었습니다.",
|
||||
|
|
@ -1638,11 +1720,14 @@
|
|||
"Item unlocked!": "아이템 잠금해제!",
|
||||
"LINKING DENIED. ${ACCOUNT} contains\nsignificant data that would ALL BE LOST.\nYou can link in the opposite order if you'd like\n(and lose THIS account's data instead)": "연동 거부됨. ${ACCOUNT} 에 모두 지워질 \n매우 중요한 데이터가 있습니다.\n원한다면 반대 순서로 연동이 가능합니다\n(이 계정의 데이터가 지워지는 대신에)",
|
||||
"Link account ${ACCOUNT} to this account?\nAll existing data on ${ACCOUNT} will be lost.\nThis can not be undone. Are you sure?": "${ACCOUNT} 을 이 계정에 연동하시겠습니까?\n${ACCOUNT} 계정에 있는 모든 데이터가 삭제됩니다.\n이 동작은 번복할 수 없습니다. 확실합니까?",
|
||||
"Longer streaks lead to better rewards.": "연속 기록이 길수록 보상도 더 좋습니다.",
|
||||
"Max number of playlists reached.": "최대 플레이 목록 수에 도달했습니다.",
|
||||
"Max number of profiles reached.": "최대 프로필 수에 도달했습니다.",
|
||||
"Maximum friend code rewards reached.": "최대의 친구 코드 보상에 도달했습니다.",
|
||||
"Message is too long.": "메시지가 너무 깁니다.",
|
||||
"New tournament result!": "새로운 토너먼트 결과!",
|
||||
"No servers are available. Please try again soon.": "가능한 서버가 없습니다. 나중에 다시 시도해주십시오.",
|
||||
"No slots available. Free a slot and try again.": "이용 가능한 슬롯이 없습니다. 슬롯을 비우고 다시 시도하세요.",
|
||||
"Profile \"${NAME}\" upgraded successfully.": "프로필 \"${NAME}\" 업그레이드 성공.",
|
||||
"Profile could not be upgraded.": "프로필을 업그레이드하지 못했습니다.",
|
||||
"Purchase successful!": "구매 성공!",
|
||||
|
|
@ -1652,7 +1737,9 @@
|
|||
"Sorry, this code has already been used.": "죄송합니다만 이 코드는 이미 사용되었습니다.",
|
||||
"Sorry, this code has expired.": "죄송합니다만 이 코드는 만료되었습니다.",
|
||||
"Sorry, this code only works for new accounts.": "죄송합니다만 이 코드는 새 계정에만 유효합니다.",
|
||||
"Sorry, this has expired.": "죄송해요, 이건 만료됐어요.",
|
||||
"Still searching for nearby servers; please try again soon.": "아직 근처에 있는 서버를 찾는 중입니다; 나중에 다시 시도해주십시오.",
|
||||
"Streak: ${NUM} days": "연속 기록: ${NUM}일",
|
||||
"Temporarily unavailable; please try again later.": "일시적으로 사용불가; 나중에 다시 시도하세요.",
|
||||
"The tournament ended before you finished.": "귀하가 완료하기 전에 토너먼트가 종료되었습니다.",
|
||||
"This account cannot be unlinked for ${NUM} days.": "이 계정은 ${NUM} 일 동안 연동 해제가 불가능합니다.",
|
||||
|
|
@ -1663,19 +1750,27 @@
|
|||
"Tournaments require ${VERSION} or newer": "토너먼트는 ${VERSION} 또는 그 보다 새로운 버전이 필요합니다.",
|
||||
"Unlink ${ACCOUNT} from this account?\nAll data on ${ACCOUNT} will be reset.\n(except for achievements in some cases)": "이 계정에서 ${ACCOUNT} 의 연동을 해제하시겠습니까?\n${ACCOUNT} 에 있는 모든 데이터가 초기화됩니다.\n(일부 상황에서 도전과제 빼고는)",
|
||||
"WARNING: complaints of hacking have been issued against your account.\nAccounts found to be hacking will be banned. Please play fair.": "경고: 당신 계정에 해킹 관련 경고가 전해졌습니다.\n해킹 중인 걸로 밝혀진 계정은 즉시 차단됩니다. 제발 게임만은 공정하게 합시다.",
|
||||
"Wait reduced!": "대기 시간이 단축됐습니다!",
|
||||
"Would you like to link your device account to this one?\n\nYour device account is ${ACCOUNT1}\nThis account is ${ACCOUNT2}\n\nThis will allow you to keep your existing progress.\nWarning: this cannot be undone!\n": "귀하의 기기를 이 계정에 연동하시겠습니까?\n\n귀하의 기기 계정: ${ACCOUNT1}\n이 계정: ${ACCOUNT2}\n\n이로써 기존 진행 상황을 유지할 수 있습니다.\n경고: 이 작업은 취소할 수 없습니다!",
|
||||
"You already own this!": "이미 소유 중입니다!",
|
||||
"You can join in ${COUNT} seconds.": "${COUNT} 초 후에 참가할 수 있습니다.",
|
||||
"You don't have enough tickets for this!": "티켓이 충분하지 않습니다!",
|
||||
"You don't own that.": "이미 소유하지 않았습니다.",
|
||||
"You got ${COUNT} tickets!": "티켓 ${COUNT}장을 받았습니다!",
|
||||
"You got ${COUNT} tokens!": "${COUNT}개의 토큰을 얻었습니다!",
|
||||
"You got a ${ITEM}!": "${ITEM}(을)를 받았습니다!",
|
||||
"You got a chest!": "상자를 얻었습니다!",
|
||||
"You got an achievement reward!": "업적 보상을 받았습니다!",
|
||||
"You have been promoted to a new league; congratulations!": "새 리그로 승격되었습니다. 축하합니다!",
|
||||
"You lost a chest! (All your chest slots were full)": "상자를 하나 잃어버렸어요!(상자 슬롯이 모두 가득 찼어요)",
|
||||
"You must update the app to view this.": "이 내용을 보려면 앱을 업데이트해야 합니다.",
|
||||
"You must update to a newer version of the app to do this.": "이 작업을 하려면 새 앱 버전으로 업데이트해야 합니다.",
|
||||
"You must update to the newest version of the game to do this.": "이 작업을 하려면 새로운 게임 버전으로 업데이트해야 합니다.",
|
||||
"You must wait a few seconds before entering a new code.": "새 코드를 입력하기 전에 수초 간 기다려야 합니다.",
|
||||
"You placed #${RANK} in a tournament!": "토너먼트에서 #${RANK}를 달성했습니다!",
|
||||
"You ranked #${RANK} in the last tournament. Thanks for playing!": "마지막 토너먼트에서 #${RANK}위에 랭크되었습니다. 플레이해주셔서 감사합니다!",
|
||||
"Your account was rejected. Are you signed in?": "계정이 거부되었습니다. 로그인 되어있으시나요?",
|
||||
"Your ad views are not registering. Ad options will be limited for a while.": "광고 조회수가 올라가지 않습니다. 당분간은 광고가 제한됩니다.",
|
||||
"Your copy of the game has been modified.\nPlease revert any changes and try again.": "게임 사본이 수정되었습니다.\n변경 사항을 되돌린 후 다시 시도해주십시오.",
|
||||
"Your friend code was used by ${ACCOUNT}": "${ACCOUNT} 님이 친구 코드를 사용했습니다"
|
||||
},
|
||||
|
|
@ -1824,6 +1919,7 @@
|
|||
"toSkipPressAnythingText": "(튜토리얼을 건너뛰려면 아무거나 누르세요)"
|
||||
},
|
||||
"twoKillText": "더블 킬!",
|
||||
"uiScaleText": "Ui 크기",
|
||||
"unavailableText": "이용할 수 없음",
|
||||
"unconfiguredControllerDetectedText": "구성되지 않은 컨트롤러가 검색됨:",
|
||||
"unlockThisInTheStoreText": "상점에서 잠금 해제해야 합니다.",
|
||||
|
|
@ -1837,10 +1933,13 @@
|
|||
"upgradeText": "업그레이드",
|
||||
"upgradeToPlayText": "플레이하려면 상점에서 \"${PRO}\"를 잠금 해제하세요.",
|
||||
"useDefaultText": "기본값 사용",
|
||||
"userSystemScriptsCreateText": "사용자 시스템 스크립트 생성",
|
||||
"userSystemScriptsDeleteText": "사용자 시스템 스크립트 삭제",
|
||||
"usesExternalControllerText": "이 게임은 외부 컨트롤러를 입력용으로 사용합니다.",
|
||||
"usingItunesText": "사운트트랙에 음악 앱 사용 중...",
|
||||
"usingItunesTurnRepeatAndShuffleOnText": "iTunes에서 임의 재생이 켜져있고 반복은 모두로 되어 있는지 확인해주십시오.",
|
||||
"v2AccountLinkingInfoText": "V2 계정을 연결하려면 '계정 관리' 버튼을 누르세요.",
|
||||
"v2AccountRequiredText": "여기에는 V2 계정을 필요로 합니다. 계정을 업그레이드하고 다시 시도하세요.",
|
||||
"validatingTestBuildText": "테스트 빌드 확인 중...",
|
||||
"viaText": "통하여 로그인 함",
|
||||
"victoryText": "승리!",
|
||||
|
|
@ -1907,5 +2006,6 @@
|
|||
},
|
||||
"yesAllowText": "예, 허용합니다!",
|
||||
"yourBestScoresText": "내 최고 점수",
|
||||
"yourBestTimesText": "내 최고 시간"
|
||||
"yourBestTimesText": "내 최고 시간",
|
||||
"yourPrizeText": "경품:"
|
||||
}
|
||||
450
dist/ba_data/data/languages/malay.json
vendored
450
dist/ba_data/data/languages/malay.json
vendored
File diff suppressed because it is too large
Load diff
1140
dist/ba_data/data/languages/persian.json
vendored
1140
dist/ba_data/data/languages/persian.json
vendored
File diff suppressed because it is too large
Load diff
2015
dist/ba_data/data/languages/piratespeak.json
vendored
Normal file
2015
dist/ba_data/data/languages/piratespeak.json
vendored
Normal file
File diff suppressed because it is too large
Load diff
118
dist/ba_data/data/languages/polish.json
vendored
118
dist/ba_data/data/languages/polish.json
vendored
|
|
@ -7,7 +7,9 @@
|
|||
"campaignProgressText": "Postęp Kampanii [Trudny]: ${PROGRESS}",
|
||||
"changeOncePerSeason": "Możesz to zmienić tylko raz na sezon.",
|
||||
"changeOncePerSeasonError": "Musisz poczekać do następnego sezonu, by znowu to zmienić (${NUM} dni)",
|
||||
"createAnAccountText": "Stwórz Konto",
|
||||
"customName": "Własna Nazwa",
|
||||
"deleteAccountText": "Usuń konto",
|
||||
"googlePlayGamesAccountSwitchText": "Jeśli chcesz użyć innego konta Google,\nużyj aplikacji Gry Google Play, aby przełączyć się na to konto.",
|
||||
"linkAccountsEnterCodeText": "Wpisz Kod",
|
||||
"linkAccountsGenerateCodeText": "Wygeneruj Kod",
|
||||
|
|
@ -26,6 +28,7 @@
|
|||
"setAccountNameDesc": "Wybierz nazwę do wyświetlenia dla swojego konta.\nMożesz użyć nazwy z jednego z połączonych kont\n lub utworzyć unikalną niestandardową nazwę.",
|
||||
"signInInfoText": "Zaloguj się, by zbierać kupony, rywalizować online\ni przenosić postęp gry między urządzeniami",
|
||||
"signInText": "Zaloguj się",
|
||||
"signInWithAnEmailAddressText": "Zaloguj się adresem email",
|
||||
"signInWithDeviceInfoText": "(automatyczne konto dostępne tylko z tego urządzenia)",
|
||||
"signInWithDeviceText": "Zaloguj się kontem urządzenia",
|
||||
"signInWithGameCircleText": "Zaloguj się z Game Circle",
|
||||
|
|
@ -34,7 +37,7 @@
|
|||
"signInWithTestAccountText": "Zaloguj się kontem testowym",
|
||||
"signInWithText": "Zaloguj się kontem ${SERVICE}",
|
||||
"signInWithV2InfoText": "(konto działa na wszystkich platformach)",
|
||||
"signInWithV2Text": "Zaloguj się kontem BombSquad",
|
||||
"signInWithV2Text": "Zaloguj się kontem ${APP_NAME}",
|
||||
"signOutText": "Wypisz się",
|
||||
"signingInText": "Trwa logowanie...",
|
||||
"signingOutText": "Trwa wylogowywanie...",
|
||||
|
|
@ -346,6 +349,8 @@
|
|||
"allowText": "Zezwól",
|
||||
"alreadySignedInText": "Twoje konto jest zalogowane z innego urządzenia;\nproszę zmienić konta lub zamknąć grę na innych\nurządzeniach i spróbować ponownie.",
|
||||
"apiVersionErrorText": "Nie mogę załadować modułu ${NAME}; wersja używana - ${VERSION_USED}; wymagana - ${VERSION_REQUIRED}.",
|
||||
"applyText": "Zatwierdź",
|
||||
"areYouSureText": "Jesteś pewny?",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(\"Auto\" aktywuj tylko wtedy, gdy są podłączone słuchawki)",
|
||||
"headRelativeVRAudioText": "Head-Relative VR Audio",
|
||||
|
|
@ -371,14 +376,23 @@
|
|||
"boostText": "Dopalacz",
|
||||
"bsRemoteConfigureInAppText": "${REMOTE_APP_NAME} jest konfigurowany w samej aplikacji.",
|
||||
"buttonText": "przycisk",
|
||||
"canWeDebugText": "Chcesz aby BombSquad automatycznie raportował błędy,\nawarie i podstawowe informacje o użytkowaniu deweloperowi?\n\nPrzesyłane dane nie będą zawierać Twoich osobistych danych,\na pomogą jedynie poprawić działanie gry i usunąć jej błędy.",
|
||||
"canWeDebugText": "Chcesz, aby ${APP_NAME} automatycznie raportował błędy,\nawarie i podstawowe informacje o użytkowaniu deweloperowi?\n\nPrzesyłane dane nie będą zawierać Twoich osobistych danych,\na pomogą jedynie poprawić działanie gry i usunąć jej błędy.",
|
||||
"cancelText": "Anuluj",
|
||||
"cantConfigureDeviceText": "Wybacz ale ${DEVICE} nie jest konfigurowalne.",
|
||||
"challengeEndedText": "To wyzwanie zostało zakończone.",
|
||||
"chatMuteText": "Wycisz Czat",
|
||||
"chatMutedText": "Czat Wyciszony",
|
||||
"chatUnMuteText": "Podgłośnij Czat",
|
||||
"chests": {
|
||||
"prizeOddsText": "Szanse na Nagrody",
|
||||
"reduceWaitText": "Skróć Czekanie",
|
||||
"slotDescriptionText": "Ta komórka może trzymać skrzynkę.\n\nSkrzynki można otrzymać przechodząc poziomy w kampanii, \njako nagrody w turniejach i zdobywając \nosiągnięcia.",
|
||||
"slotText": "Komórka ${NUM}",
|
||||
"slotsFullWarningText": "UWAGA: Wszystkie komórki na skrzynki są pełne.\nNowo zdobyte skrzynki zostaną utracone.",
|
||||
"unlocksInText": "Odblokuje się za"
|
||||
},
|
||||
"choosingPlayerText": "<wybieram gracza>",
|
||||
"claimText": "Odbierz",
|
||||
"codesExplainText": "Kody są dostarczane przez dewelopera w celu\ndiagnozowania i poprawiania problemów z kontem.",
|
||||
"completeThisLevelToProceedText": "Musisz ukończyć ten\netap aby kontynuować!",
|
||||
"completionBonusText": "Bonusowe zakończenie",
|
||||
|
|
@ -585,6 +599,7 @@
|
|||
"disableXInputDescriptionText": "Pozwala na podłączenie 4 kontrolerów, ale może nie działać.",
|
||||
"disableXInputText": "Wyłącz XInput",
|
||||
"disabledText": "Wyłączone",
|
||||
"discardText": "Odrzuć",
|
||||
"discordFriendsText": "Chcesz poszukać nowych ludzi do gry?\nDołącz do naszego Discorda i znajdź nowych znajomych!",
|
||||
"discordJoinText": "Dołącz do Discorda",
|
||||
"doneText": "Gotowe",
|
||||
|
|
@ -672,6 +687,8 @@
|
|||
"errorText": "Błąd",
|
||||
"errorUnknownText": "nieznany błąd",
|
||||
"exitGameText": "Wyjść z ${APP_NAME}?",
|
||||
"expiredAgoText": "Wygasło ${T} temu",
|
||||
"expiresInText": "Wygaśnie za ${T}",
|
||||
"exportSuccessText": "'${NAME}' eksportowane.",
|
||||
"externalStorageText": "Pamięć zewnętrzna",
|
||||
"failText": "Niepowodzenie",
|
||||
|
|
@ -738,6 +755,7 @@
|
|||
"copyCodeConfirmText": "Kod skopiowany do schowka.",
|
||||
"copyCodeText": "Skopiuj kod",
|
||||
"dedicatedServerInfoText": "Dla najlepszych wyników ustaw serwer dedykowany. Zobacz jak na bombsquadgame.com/server.",
|
||||
"descriptionShortText": "Użyj okna zbiórki by stworzyć imprezę.",
|
||||
"disconnectClientsText": "Spowoduje to rozłączenie ${COUNT} graczy\nbędących na imprezie. Jesteś pewny?",
|
||||
"earnTicketsForRecommendingAmountText": "Znajomi dostaną ${COUNT} kuponów jeżeli wypróbują grę\n(a Ty dostaniesz ${YOU_COUNT} za każdego kto zagra.)",
|
||||
"earnTicketsForRecommendingText": "Poleć grę dla darmowych\n kuponów...",
|
||||
|
|
@ -756,9 +774,9 @@
|
|||
"friendPromoCodeRedeemShortText": "Może być żądane do ${COUNT} kuponów w grze.",
|
||||
"friendPromoCodeWhereToEnterText": "(w \"Ustawienia->Zaawansowane->Wyślij informacje\")",
|
||||
"getFriendInviteCodeText": "Zdobądź kod promocyjny kumpla",
|
||||
"googlePlayDescriptionText": "Zaproś użytkowników Google Play na imprezę:",
|
||||
"googlePlayDescriptionText": "Zaproś użytkowników Google Play do imprezy:",
|
||||
"googlePlayInviteText": "Zaproś",
|
||||
"googlePlayReInviteText": "Obecnie jest ${COUNT} graczy z Google Play'a na imprezie,\nktórzy zostaną rozłączeni jeśli uruchomisz nowe zaproszenie.\nUwzględnij ich w nowym zaproszeniu, aby mogli powrócić.",
|
||||
"googlePlayReInviteText": "Obecnie jest ${COUNT} graczy z Google Play'a na imprezie\nktórzy zostaną rozłączeni jeśli uruchomisz nowe zaproszenie.\nUwzględnij ich w nowym zaproszeniu, aby mogli powrócić.",
|
||||
"googlePlaySeeInvitesText": "Zobacz zaproszenia",
|
||||
"googlePlayText": "Google Play",
|
||||
"googlePlayVersionOnlyText": "(Tylko Android / Google Play)",
|
||||
|
|
@ -859,6 +877,12 @@
|
|||
"youHaveShortText": "masz ${COUNT} kuponów",
|
||||
"youHaveText": "masz ${COUNT} kuponów"
|
||||
},
|
||||
"goldPass": {
|
||||
"desc1InfTokensText": "Nieskończone żetony.",
|
||||
"desc2NoAdsText": "Brak reklam.",
|
||||
"desc3ForeverText": "Na zawsze.",
|
||||
"goldPassText": "Złota Przepustka"
|
||||
},
|
||||
"googleMultiplayerDiscontinuedText": "Przepraszam, usługa gry wieloosobowej Google nie jest już dostępna.\nPracuję nad zamiennikiem tak szybko jak potrafię.\nTymczasem proszę o wypróbowanie innej metody połączenia.\n-Eric",
|
||||
"googlePlayPurchasesNotAvailableText": "Zakupy Google Play niedostępne.\nSpróbuj zaktualizować aplikację Google Play.",
|
||||
"googlePlayServicesNotAvailableText": "Usługi Google Play są niedostępne.\nNiektóre funkcje aplikacji mogą być wyłączone.",
|
||||
|
|
@ -886,7 +910,7 @@
|
|||
"helpWindow": {
|
||||
"bombInfoText": "- Bomba -\nSilniejsza niż ciosy, lecz\nz powodu obrażeń może Cię\nwpędzić do grobu. Dla\nlepszego efektu wyrzuć ją przed\nwypaleniem się lontu.",
|
||||
"canHelpText": "${APP_NAME} może Ci w tym pomóc",
|
||||
"controllersInfoText": "Możesz zagrać w ${APP_NAME} ze znajomymi poprzez sieć lub na tym\nsamym urządzeniu, jeśli masz wystarczająco dużo kontrolerów.\n${APP_NAME} obsługuje wiele z nich; możesz nawet użyć smartfonów\njako kontrolery, wykorzystując aplikację '${REMOTE_APP_NAME}'.\nZobacz Ustawienia->Kontrolery, aby uzyskać szczegółowe informacje.",
|
||||
"controllersInfoText": "Możesz zagrać w ${APP_NAME} ze znajomymi poprzez sieć lub na tym\nsamym urządzeniu, jeśli masz wystarczająco dużo kontrolerów.\n${APP_NAME} obsługuje wiele z nich; możesz nawet użyć smartfonów\njako kontrolery, wykorzystując aplikację \"${REMOTE_APP_NAME}\".\nZobacz Ustawienia->Kontrolery, aby uzyskać szczegółowe informacje.",
|
||||
"controllersInfoTextFantasia": "Gracz może używać zdalnego kontrolera, jednak zalecane są\ngamepady. Możesz także użyć urządzeń mobilnych jako kontrolerów\ngry za pomocą darmowej aplikacji 'BombSquad Remote'.\nSprawdź informacje dostępne w ustawieniach kontrolerów.",
|
||||
"controllersInfoTextMac": "Jeden lub dwóch graczy może używać klawiatury, jednak najlepiej korzystać z\ngamepadów. Gra obsługuje pady USB, kontrolery PS3, Xbox360, Wiimote i urządzenia\nz systemem iOS/Android. Na pewno coś z tego posiadasz aby sterować postaciami?\nWięcej informacji dostępnych jest w ustawieniach kontrolerów.",
|
||||
"controllersInfoTextOuya": "Do gry w BombSquad możesz wykorzystać kontrolery OUYA, PS3, Xbox360\ni wiele innych gamepadów podłączanych za pomocą USB lub Bluetootha.\nMożesz również używać jako kontrolery urządzenia z systemami iOS/Android\nz pomocą darmowej aplikacji 'BombSquad Remote'. Więcej informacji w\nustawieniach kontrolerów.",
|
||||
|
|
@ -930,12 +954,13 @@
|
|||
},
|
||||
"holdAnyButtonText": "<przytrzymaj dowolny przycisk>",
|
||||
"holdAnyKeyText": "<przytrzymaj dowolny klawisz>",
|
||||
"hostIsNavigatingMenusText": "- ${HOST} nawiguje w menu jako szef -",
|
||||
"hostIsNavigatingMenusText": "- ${HOST} nawiguje w menu jak szef -",
|
||||
"importPlaylistCodeInstructionsText": "Użyj tego kodu, by zimportować tą listę w innym miejscu:",
|
||||
"importPlaylistSuccessText": "Zimportowano playlistę '${NAME}' rozgrywek ${TYPE}",
|
||||
"importText": "Importuj",
|
||||
"importingText": "Importowanie...",
|
||||
"inGameClippedNameText": "w grze widoczne jako\n\"${NAME}\"",
|
||||
"inboxText": "Skrzynka odbiorcza",
|
||||
"installDiskSpaceErrorText": "BŁĄD: Niemożliwe dokończenie instalacji.\nByć może mało miejsca w pamięci urządzenia.\nZrób więcej miejsca i spróbuj jeszcze raz.",
|
||||
"internal": {
|
||||
"arrowsToExitListText": "wciśnij ${LEFT} lub ${RIGHT} aby opuścić listę",
|
||||
|
|
@ -992,12 +1017,14 @@
|
|||
"touchScreenJoinWarningText": "Dołączyłeś się wykorzystując ekran dotykowy.\nJeśli to pomyłka, stuknij 'Menu->Opuść grę'.",
|
||||
"touchScreenText": "Ekran dotykowy",
|
||||
"trialText": "trial",
|
||||
"unableToCompleteTryAgainText": "Nie można teraz tego zrobić.\nSpróbuj ponownie później.",
|
||||
"unableToResolveHostText": "Błąd: nie można odnaleźć hosta.",
|
||||
"unavailableNoConnectionText": "Obecnie niedostępne (sprawdź połączenie internetowe).",
|
||||
"vrOrientationResetCardboardText": "Użyj tego aby zresetować orientację VR.\nAby zagrać w grę będziesz potrzebować zewnętrznego kontrolera.",
|
||||
"vrOrientationResetText": "Reset orientacji VR.",
|
||||
"willTimeOutText": "(czas upłynie przy bezczynności)"
|
||||
},
|
||||
"inventoryText": "Ekwipunek",
|
||||
"jumpBoldText": "SKOK",
|
||||
"jumpText": "Skok",
|
||||
"keepText": "Zachowaj",
|
||||
|
|
@ -1044,8 +1071,11 @@
|
|||
"seasonEndsMinutesText": "Sezon zakończy się za ${NUMBER} minut.",
|
||||
"seasonText": "Sezon ${NUMBER}",
|
||||
"tournamentLeagueText": "Musisz uzyskać ligę ${NAME} aby wejść do tego turnieju.",
|
||||
"trophyCountsResetText": "Liczba Zdobyczy zresetuje się w przyszłym sezonie."
|
||||
"trophyCountsResetText": "Liczba Zdobyczy zresetuje się w przyszłym sezonie.",
|
||||
"upToDateBonusDescriptionText": "Gracze na najnowszej wersji gry\notrzymają tutaj ${PERCENT}% bonusu.",
|
||||
"upToDateBonusText": "Bonus Wersji"
|
||||
},
|
||||
"learnMoreText": "Dowiedz się więcej",
|
||||
"levelBestScoresText": "Najlepsze wyniki w ${LEVEL}",
|
||||
"levelBestTimesText": "Najlepsze czasy w ${LEVEL}",
|
||||
"levelFastestTimesText": "Najszybsze czasy w ${LEVEL}",
|
||||
|
|
@ -1092,6 +1122,8 @@
|
|||
"modeArcadeText": "Tryb Salonu Gier",
|
||||
"modeClassicText": "Tryb Klasyczny",
|
||||
"modeDemoText": "Tryb Demo",
|
||||
"moreSoonText": "Przybędzie w przyszłości...",
|
||||
"mostDestroyedPlayerText": "Najbardziej Zgładzony Gracz",
|
||||
"mostValuablePlayerText": "Najwartościowszy gracz",
|
||||
"mostViolatedPlayerText": "Gracz najbardziej sprofanowany",
|
||||
"mostViolentPlayerText": "Gracz najbardziej brutalny",
|
||||
|
|
@ -1108,6 +1140,7 @@
|
|||
"nameSuicideText": "${NAME} popełnił samobójstwo.",
|
||||
"nameText": "Nazwa",
|
||||
"nativeText": "Natywna",
|
||||
"newExclaimText": "Nowy!",
|
||||
"newPersonalBestText": "Nowy rekord życiowy!",
|
||||
"newTestBuildAvailableText": "Dostępna jest nowa wersja! (${VERSION} build ${BUILD}).\nPobierz ją z ${ADDRESS}",
|
||||
"newText": "Nowy",
|
||||
|
|
@ -1119,6 +1152,7 @@
|
|||
"noExternalStorageErrorText": "Brak pamięci zewnętrznej w tym urządzeniu",
|
||||
"noGameCircleText": "Błąd: niezalogowany w GameCircle",
|
||||
"noJoinCoopMidwayText": "Rozgrywki trybu Kooperacji nie mogą być łączone w czasie ich trwania.",
|
||||
"noMessagesText": "Brak wiadomości.",
|
||||
"noPluginsInstalledText": "Brak zainstalowanych pluginów",
|
||||
"noProfilesErrorText": "Nie masz własnego profilu gracza, dlatego nazwano Cię: '${NAME}'.\nPrzejdź do Ustawień->Profile Gracza aby stworzyć własny.",
|
||||
"noScoresYetText": "Brak wyników do tej pory.",
|
||||
|
|
@ -1128,6 +1162,7 @@
|
|||
"noValidMapsErrorText": "Nie znaleziono żadnych map dla tego typu rozgrywki.",
|
||||
"notEnoughPlayersRemainingText": "Niewystarczająca ilość graczy. Spróbuj zacząć nową grę.",
|
||||
"notEnoughPlayersText": "Aby rozpocząć grę potrzeba ${COUNT} graczy!",
|
||||
"notEnoughTicketsText": "Za mało biletów!",
|
||||
"notNowText": "Nie teraz",
|
||||
"notSignedInErrorText": "Musisz zalogować się, aby to zrobić.",
|
||||
"notSignedInGooglePlayErrorText": "Zaloguj się z Google Play, by to zrobić.",
|
||||
|
|
@ -1140,6 +1175,9 @@
|
|||
"onText": "Wł.",
|
||||
"oneMomentText": "Chwileczkę...",
|
||||
"onslaughtRespawnText": "${PLAYER} odrodzi się w fali ${WAVE}",
|
||||
"openMeText": "Otwórz Mnie!",
|
||||
"openNowText": "Otwórz Teraz",
|
||||
"openText": "Otwórz",
|
||||
"orText": "${A} lub ${B}",
|
||||
"otherText": "Inny...",
|
||||
"outOfText": "(#${RANK} na ${ALL})",
|
||||
|
|
@ -1235,10 +1273,12 @@
|
|||
"punchText": "Cios",
|
||||
"purchaseForText": "Kup za ${PRICE}",
|
||||
"purchaseGameText": "Kup Grę",
|
||||
"purchaseNeverAvailableText": "Przepraszamy, w tej kompilacji nie można dokonać zakupów.\nSpróbuj zalogować się na swoje konto na innej platformie i dokonać tam zakupów.",
|
||||
"purchaseNotAvailableText": "Ten zakup jest niedostępny.",
|
||||
"purchasingText": "Kupowanie...",
|
||||
"quitGameText": "Wyjść z ${APP_NAME}?",
|
||||
"quittingIn5SecondsText": "Wyjście za 5 sekund...",
|
||||
"randomPlayerNamesText": "DOMYŚLNE_NAZWY",
|
||||
"randomPlayerNamesText": "Albin, Aleksandra, Agata, Agnieszka, Aleksy, Alina, Antoni, Aldona, Alicja, Amelia, Aniela, Bazyli, Dobrogost, Filip, Jan, Julia, Maria, Szymon, Zofia, Adok, Anastazja, Andrzej, Armand, Aron, Polish",
|
||||
"randomText": "Losowo",
|
||||
"rankText": "Ranking",
|
||||
"ratingText": "Ocena",
|
||||
|
|
@ -1277,6 +1317,7 @@
|
|||
"version_mismatch": "Wersje nie pasują.\nSprawdź czy BombSquad i BombSquad Remote\nmają najnowszą wersję i spróbuj ponownie."
|
||||
},
|
||||
"removeInGameAdsText": "Odblokowując wersję \"${PRO}\", pozbędziesz się reklam w grze.",
|
||||
"removeInGameAdsTokenPurchaseText": "OFERTA: Zakup DOWOLNĄ paczkę żetonów aby usunąć reklamy.",
|
||||
"renameText": "Zmień nazwę",
|
||||
"replayEndText": "Zakończ powtórkę",
|
||||
"replayNameDefaultText": "Ostatnia powtórka",
|
||||
|
|
@ -1339,12 +1380,14 @@
|
|||
"enterPromoCodeText": "Wpisz kod",
|
||||
"forTestingText": "Uwaga: wartości stosowane do testów będą utracone po wyjściu z gry.",
|
||||
"helpTranslateText": "Tłumaczenia ${APP_NAME} na inne języki są wysiłkiem społeczności\nfanów tej gry. Jeśli chcesz przyczynić się lub poprawić istniejące\nbłędy w tłumaczeniu, kliknij w poniższy link. Z góry dziękuję!",
|
||||
"insecureConnectionsDescriptionText": "niezalecane, ale może umożliwić grę online\nz krajów lub sieci objętych ograniczeniami",
|
||||
"insecureConnectionsText": "Używaj niezabezpieczonych połączeń",
|
||||
"kickIdlePlayersText": "Wyrzucaj nieaktywnych graczy",
|
||||
"kidFriendlyModeText": "Tryb dla dzieciaków (zredukowana przemoc itd.)",
|
||||
"languageText": "Język",
|
||||
"moddingGuideText": "Przewodnik modowania gry",
|
||||
"moddingToolsText": "Narzędzia do modyfikacji",
|
||||
"mustRestartText": "Musisz uruchomić ponownie grę aby zastosować zmiany.",
|
||||
"mustRestartText": "Musisz uruchomić ponownie grę, aby zastosować zmiany.",
|
||||
"netTestingText": "Testowanie sieci",
|
||||
"resetText": "Reset",
|
||||
"sendInfoText": "Wyślij Info",
|
||||
|
|
@ -1367,7 +1410,7 @@
|
|||
"shareText": "Udostępnij",
|
||||
"sharingText": "Udostępnianie...",
|
||||
"showText": "Wyświetl",
|
||||
"signInForPromoCodeText": "Musisz się zalogować do konta aby kody zadziałały.",
|
||||
"signInForPromoCodeText": "Musisz się zalogować do konta, aby kody zadziałały.",
|
||||
"signInWithGameCenterText": "By użyć konta Game Center\nzapisz się aplikacją Game Center.",
|
||||
"singleGamePlaylistNameText": "Tylko ${GAME}",
|
||||
"singlePlayerCountText": "1 gracz",
|
||||
|
|
@ -1399,6 +1442,7 @@
|
|||
},
|
||||
"spaceKeyText": "spacja",
|
||||
"statsText": "Statystyki",
|
||||
"stopRemindingMeText": "Przestań mi przypominać",
|
||||
"storagePermissionAccessText": "To wymaga dostępu do pamięci masowej",
|
||||
"store": {
|
||||
"alreadyOwnText": "Masz już ${NAME}!",
|
||||
|
|
@ -1438,7 +1482,7 @@
|
|||
"winterSpecialText": "Specjały Zimowe",
|
||||
"youOwnThisText": "- zdobyłeś już to -"
|
||||
},
|
||||
"storeDescriptionText": "8 Osobowe Szaleństwo!\n\nWysadź w powietrze swoich znajomych (lub komputerowych przeciwników) w turnieju z wybuchowymi mini gierkami jak np. Przechwyć Flagę, Bombowy Hokej i Epicki Mecz Śmierci w zwolnionym tempie!\n\nProste sterowanie i rozszerzone wsparcie dla kontrolerów może wprowadzić do gry aż 8 przeciwników; możesz nawet wykorzystać swoje mobilne urządzenie jako kontroler do gry dostępne jako darmowa aplikacja 'BombSquad Remote'!\n\nBomby w Górę!\n\nSprawdź na www.froemling.net/bombsquad i dowiedz się więcej.",
|
||||
"storeDescriptionText": "8-Osobowe Szaleństwo!\n\nWysadź w powietrze swoich znajomych (lub komputerowych przeciwników) w turnieju z wybuchowymi mini gierkami jak np. Przechwyć Flagę, Bombowy Hokej i Epicki Mecz Śmierci w zwolnionym tempie!\n\nProste sterowanie i rozszerzone wsparcie dla kontrolerów może wprowadzić do gry aż 8 przeciwników; możesz nawet wykorzystać swoje mobilne urządzenie jako kontroler do gry dostępne jako darmowa aplikacja \"BombSquad Remote\"!\n\nBomby w Górę!\n\nSprawdź www.froemling.net/bombsquad i dowiedz się więcej.",
|
||||
"storeDescriptions": {
|
||||
"blowUpYourFriendsText": "Wysadź w powietrze swoich znajomych.",
|
||||
"competeInMiniGamesText": "Ukończ mini gierki aby awansować z wyścigów do lotów.",
|
||||
|
|
@ -1462,6 +1506,7 @@
|
|||
"testBuildValidatedText": "Wersja Testowa Zatwierdzona! Miłej zabawy!",
|
||||
"thankYouText": "Dziękuję za Twoje wsparcie! Miłej gry!",
|
||||
"threeKillText": "POTRÓJNE ZABÓJSTWO!!",
|
||||
"ticketsDescriptionText": "Bilety pozwalają odblokować postacie,\nmapy, minigry, i więcej w sklepe.\n\nBilety można znaleźć w skrzynkach\nz kampanii, turniejów, czy osiągnięć.",
|
||||
"timeBonusText": "Bonus czasowy",
|
||||
"timeElapsedText": "Czas, jaki upłynął",
|
||||
"timeExpiredText": "Czas minął",
|
||||
|
|
@ -1472,10 +1517,24 @@
|
|||
"tipText": "Wskazówka",
|
||||
"titleText": "BombSquad",
|
||||
"titleVRText": "BombSquad VR",
|
||||
"tokens": {
|
||||
"getTokensText": "Zdobądź żetony",
|
||||
"notEnoughTokensText": "Za mało żetonów!",
|
||||
"numTokensText": "${COUNT} żetonów",
|
||||
"openNowDescriptionText": "Masz wystarczająco dużo biletów\naby otworzyć to teraz \n- nie musisz czekać.",
|
||||
"shinyNewCurrencyText": "Nowa, błyszcząca waluta BombSquad.",
|
||||
"tokenPack1Text": "Mały pakiet żetonów",
|
||||
"tokenPack2Text": "Średni pakiet żetonów",
|
||||
"tokenPack3Text": "Duży pakiet żetonów",
|
||||
"tokenPack4Text": "Gigantyczny pakiet żetonów",
|
||||
"tokensDescriptionText": "Żetony przyspieszają prędkość odblokowania\nskrzynek i za inne operacje związane z grą czy kontem.\n\nMożesz wygrać żetony w grze lub kupić je\nw paczkach. Albo kupić Złoty Karnet dla nieskończonych\nżetonów i nie będziesz o nich więcej słyszeć.",
|
||||
"youHaveGoldPassText": "Masz Złotą Przepustkę.\nWszystkie zakupy żetonów są bezpłatne.\nSuper!"
|
||||
},
|
||||
"topFriendsText": "Najlepsi znajomi",
|
||||
"tournamentCheckingStateText": "Sprawdzanie statusu turnieju; proszę czekać...",
|
||||
"tournamentEndedText": "Ten turniej został zakończony. Nowy wkrótce się rozpocznie.",
|
||||
"tournamentEntryText": "Wejście do Turnieju",
|
||||
"tournamentFinalStandingsText": "Pozycje w Turnieju",
|
||||
"tournamentResultsRecentText": "Najnowsze wyniki Turnieju",
|
||||
"tournamentStandingsText": "Klasyfikacja Turnieju",
|
||||
"tournamentText": "Turniej",
|
||||
|
|
@ -1549,6 +1608,18 @@
|
|||
"Uber Onslaught": "Super Atak",
|
||||
"Uber Runaround": "Super Otaczanie"
|
||||
},
|
||||
"displayItemNames": {
|
||||
"${C} Tickets": "${C} Biletów",
|
||||
"${C} Tokens": "${C} Żetonów",
|
||||
"Chest": "Skrzynka",
|
||||
"L1 Chest": "Skrzynka P1",
|
||||
"L2 Chest": "Skrzynka P2",
|
||||
"L3 Chest": "Skrzynka P3",
|
||||
"L4 Chest": "Skrzynka P4",
|
||||
"L5 Chest": "Skrzynka P5",
|
||||
"L6 Chest": "Skrzynka P6",
|
||||
"Unknown Chest": "Nieznana Skrzynka"
|
||||
},
|
||||
"gameDescriptions": {
|
||||
"Be the chosen one for a length of time to win.\nKill the chosen one to become it.": "Bądź wybrańcem przez określony czas, aby wygrać.\nZabij wybrańca, aby się nim stać.",
|
||||
"Bomb as many targets as you can.": "Zbombarduj tyle celów, ile tylko możesz.",
|
||||
|
|
@ -1653,6 +1724,7 @@
|
|||
"Korean": "Koreański",
|
||||
"Malay": "Malajski",
|
||||
"Persian": "Perski",
|
||||
"PirateSpeak": "Piracki język",
|
||||
"Polish": "Polski",
|
||||
"Portuguese": "Portugalski",
|
||||
"Romanian": "Rumuński",
|
||||
|
|
@ -1727,6 +1799,7 @@
|
|||
"Cheating detected; scores and prizes suspended for ${COUNT} days.": "Oszukiwanie wykryte; punkty i nagrody zawieszone na ${COUNT} dni.",
|
||||
"Could not establish a secure connection.": "Nie udało się nawiązać bezpiecznego połączenia.",
|
||||
"Daily maximum reached.": "Dzienne maksimum wykorzystane.",
|
||||
"Daily sign-in reward": "Nagroda za codzienne logowanie",
|
||||
"Entering tournament...": "Wchodzenie do turnieju...",
|
||||
"Invalid code.": "Nieprawidłowy kod.",
|
||||
"Invalid payment; purchase canceled.": "Nieprawidłowa zapłata; zamówienie anulowane.",
|
||||
|
|
@ -1736,11 +1809,14 @@
|
|||
"Item unlocked!": "Przedmiot odblokowany!",
|
||||
"LINKING DENIED. ${ACCOUNT} contains\nsignificant data that would ALL BE LOST.\nYou can link in the opposite order if you'd like\n(and lose THIS account's data instead)": "ŁĄCZENIE ODRZUCONE. ${ACCOUNT} zawiera\nznaczący postęp który zostałby USUNIĘTY.\nMożesz połączyć konta na odwrót jeśli chcesz\n(i stracić postęp Z TEGO konta).",
|
||||
"Link account ${ACCOUNT} to this account?\nAll existing data on ${ACCOUNT} will be lost.\nThis can not be undone. Are you sure?": "Połączyć konto ${ACCOUNT} z tym kontem?\nCały postęp z konta ${ACCOUNT} będzie stracony.\nNie można tego odwrócić. Pewna decyzja?",
|
||||
"Longer streaks lead to better rewards.": "Dłuższe serie dają lepsze nagrody",
|
||||
"Max number of playlists reached.": "Osiągnięto maksymalną liczbę playlist.",
|
||||
"Max number of profiles reached.": "Osiągnięto maksymalną liczbę profili.",
|
||||
"Maximum friend code rewards reached.": "Osiągnięto limit kodów promocyjnych.",
|
||||
"Message is too long.": "Wiadomość jest za długa.",
|
||||
"New tournament result!": "Nowy wynik w turnieju!",
|
||||
"No servers are available. Please try again soon.": "Brak dostępnych serwerów. Spróbuj ponownie wkrótce.",
|
||||
"No slots available. Free a slot and try again.": "Brak wolnych komórek. Zwolnij komórkę i spróbuj ponownie.",
|
||||
"Profile \"${NAME}\" upgraded successfully.": "Nazwa \"${NAME}\" ulepszona pomyślnie.",
|
||||
"Profile could not be upgraded.": "Profil nie może być ulepszony.",
|
||||
"Purchase successful!": "Udany zakup!",
|
||||
|
|
@ -1750,7 +1826,9 @@
|
|||
"Sorry, this code has already been used.": "Przepraszamy, ten kod został już użyty.",
|
||||
"Sorry, this code has expired.": "Przepraszamy, ten kod wygasł.",
|
||||
"Sorry, this code only works for new accounts.": "Przepraszamy, ten kod działa tylko na nowych kontach.",
|
||||
"Sorry, this has expired.": "Niestety, czas minął.",
|
||||
"Still searching for nearby servers; please try again soon.": "Wciąż szukam pobliskich serwerów; proszę spróbuj ponownie wkrótce.",
|
||||
"Streak: ${NUM} days": "Seria: ${NUM} dni",
|
||||
"Temporarily unavailable; please try again later.": "Tymczasowo niedostępne; spróbuj ponownie później.",
|
||||
"The tournament ended before you finished.": "Wyniki po zakończonym turnieju.",
|
||||
"This account cannot be unlinked for ${NUM} days.": "To konto nie może zostać rozłączone przez ${NUM} dni.",
|
||||
|
|
@ -1761,19 +1839,28 @@
|
|||
"Tournaments require ${VERSION} or newer": "Turnieje potrzebują ${VERSION} albo nowszej",
|
||||
"Unlink ${ACCOUNT} from this account?\nAll data on ${ACCOUNT} will be reset.\n(except for achievements in some cases)": "Rozłączyć konto ${ACCOUNT} z tego konta?\nCały postęp z konta ${ACCOUNT} zostanie zresetowany.\n(oprócz osiągnięć w niektórych przypadkach)",
|
||||
"WARNING: complaints of hacking have been issued against your account.\nAccounts found to be hacking will be banned. Please play fair.": "OSTRZEŻENIE: przeciwko Tobie zostały złożone skargi o oszukiwanie.\nKonta ludzi oszukujących zostaną zablokowane. Proszę grać uczciwie.",
|
||||
"Wait reduced!": "Skrócono czas czekania!",
|
||||
"Warning: This version of the game is limited to old account data; things may appear missing or out of date.\nPlease upgrade to a newer version of the game to see your latest account data.": "OSTRZEŻENIE: Ta wersja gry jest ograniczona do starych danych konta; rzeczy mogą być nieaktualne lub brakujace.\nProszę zaktualizować gre do najnowszej wersji aby zobaczyć najnowsze dane.",
|
||||
"Would you like to link your device account to this one?\n\nYour device account is ${ACCOUNT1}\nThis account is ${ACCOUNT2}\n\nThis will allow you to keep your existing progress.\nWarning: this cannot be undone!\n": "Chcesz połączyć swoje konto z urządzenia z tym?\n\nTwoje konto urządzenia to ${ACCOUNT1}\nTo konto to ${ACCOUNT2}\n\nTo pozwoli Ci zapisać istniejący postęp.\nUwaga: Nie da się tego cofnąć!",
|
||||
"You already own this!": "Już to posiadasz!",
|
||||
"You can join in ${COUNT} seconds.": "Możesz dołączyć w ciągu ${COUNT} sekund.",
|
||||
"You don't have enough tickets for this!": "Nie masz wystarczająco dużo kuponów!",
|
||||
"You don't own that.": "Nie posiadasz tego.",
|
||||
"You got ${COUNT} tickets!": "Masz ${COUNT} kuponów!",
|
||||
"You got ${COUNT} tokens!": "Zdobyłeś ${COUNT} żetonów!",
|
||||
"You got a ${ITEM}!": "Otrzymałeś ${ITEM}!",
|
||||
"You got a chest!": "Zdobyłeś skrzynkę!",
|
||||
"You got an achievement reward!": "Zdobyłeś nagrodę za osiągnięcie!",
|
||||
"You have been promoted to a new league; congratulations!": "Zostałeś awansowany do nowej ligi; gratulacje!",
|
||||
"You must update to a newer version of the app to do this.": "Musisz zaktualizować do nowszej wersji gry aby to zrobić.",
|
||||
"You must update to the newest version of the game to do this.": "Musisz zaktualizować grę do nowej wersji aby to zrobić.",
|
||||
"You lost a chest! (All your chest slots were full)": "Straciłeś skrzynkę! (Wszystkie komórki na skrzynki są pełne)",
|
||||
"You must update the app to view this.": "Musisz zaktualizować aplikację, aby to wyświetlić.",
|
||||
"You must update to a newer version of the app to do this.": "Musisz zaktualizować do nowszej wersji gry, aby to zrobić.",
|
||||
"You must update to the newest version of the game to do this.": "Musisz zaktualizować grę do nowej wersji, aby to zrobić.",
|
||||
"You must wait a few seconds before entering a new code.": "Musisz odczekać kilka sekund zanim wpiszesz nowy kod.",
|
||||
"You placed #${RANK} in a tournament!": "Zdobyłeś #${RANK} miejsce w turnieju!",
|
||||
"You ranked #${RANK} in the last tournament. Thanks for playing!": "Zostałeś sklasyfikowany na ${RANK} pozycji w ostatnim turnieju. Dzięki za udział!",
|
||||
"Your account was rejected. Are you signed in?": "Twoje konto zostało odrzucone. Czy jesteś zalogowany?",
|
||||
"Your ad views are not registering. Ad options will be limited for a while.": "Obejrzenie reklamy nie zostało zarejestrowane. Opcje reklamowe zostaną chwilowo ograniczone.",
|
||||
"Your copy of the game has been modified.\nPlease revert any changes and try again.": "Twoja kopia gry została zmodyfikowana.\nCofnij zmiany i spróbuj ponownie.",
|
||||
"Your friend code was used by ${ACCOUNT}": "Kod kumpla został użyty przez ${ACCOUNT}"
|
||||
},
|
||||
|
|
@ -1929,6 +2016,7 @@
|
|||
"twoKillText": "PODWÓJNE ZABÓJSTWO!",
|
||||
"uiScaleText": "Skala interfejsu",
|
||||
"unavailableText": "niedostępne",
|
||||
"unclaimedPrizesText": "Masz nieodebrane nagrody!",
|
||||
"unconfiguredControllerDetectedText": "Wykryto nieskonfigurowany kontroler:",
|
||||
"unlockThisInTheStoreText": "To musi zostać odblokowane w sklepie.",
|
||||
"unlockThisProfilesText": "By stworzyć więcej niż ${NUM} kont, potrzebujesz:",
|
||||
|
|
@ -1947,6 +2035,7 @@
|
|||
"usingItunesText": "Korzystanie z aplikacji muzycznej jako ścieżki dźwiękowej...",
|
||||
"usingItunesTurnRepeatAndShuffleOnText": "Upewnij się, że w ustawieniach iTunes tasowanie utworów i powtarzanie całości jest włączone.",
|
||||
"v2AccountLinkingInfoText": "Aby połączyć konta V2, użyj przycisku \"Zarządzaj Kontem\".",
|
||||
"v2AccountRequiredText": "Wymaga to konta V2. Uaktualnij swoje konto i spróbuj ponownie.",
|
||||
"validatingBetaText": "Legalizowanie wersji Beta...",
|
||||
"validatingTestBuildText": "Sprawdzanie wersji testowej...",
|
||||
"viaText": "poprzez",
|
||||
|
|
@ -2015,5 +2104,6 @@
|
|||
},
|
||||
"yesAllowText": "Dajesz!",
|
||||
"yourBestScoresText": "Twoje najlepsze wyniki",
|
||||
"yourBestTimesText": "Twoje najlepsze czasy"
|
||||
"yourBestTimesText": "Twoje najlepsze czasy",
|
||||
"yourPrizeText": "Twoja nagroda:"
|
||||
}
|
||||
1980
dist/ba_data/data/languages/portuguesebrazil.json
vendored
Normal file
1980
dist/ba_data/data/languages/portuguesebrazil.json
vendored
Normal file
File diff suppressed because it is too large
Load diff
1980
dist/ba_data/data/languages/portugueseportugal.json
vendored
Normal file
1980
dist/ba_data/data/languages/portugueseportugal.json
vendored
Normal file
File diff suppressed because it is too large
Load diff
98
dist/ba_data/data/languages/romanian.json
vendored
98
dist/ba_data/data/languages/romanian.json
vendored
|
|
@ -8,7 +8,9 @@
|
|||
"changeOncePerSeason": "Acest lucru poate fi schimbat o singură dată pe sezon.",
|
||||
"changeOncePerSeasonError": "Trebuie să aștepți până la următorul sezon (timp de ${NUM} (de) zile) dacă vrei să schimbi acest lucru din nou",
|
||||
"customName": "Nume Personalizat",
|
||||
"deleteAccountText": "Șterge contul",
|
||||
"deviceSpecificAccountText": "Foloseşti un cont specific dispozitivului: ${NAME}",
|
||||
"googlePlayGamesAccountSwitchText": "Dacă doriți să utilizați un alt cont Google,\nutilizați aplicația Jocuri Google Play pentru a comuta.",
|
||||
"linkAccountsEnterCodeText": "Introdu Codul",
|
||||
"linkAccountsGenerateCodeText": "Generează Codul",
|
||||
"linkAccountsInfoText": "(împărtășeşte-ți progresul făcut pe platforme diferite)",
|
||||
|
|
@ -16,6 +18,7 @@
|
|||
"linkAccountsInstructionsText": "Pentru a conecta 2 conturi, generează un cod pe\nunul din ele şi introdu acelmcod pe celălalt.\nProgresul şi inventarul tău vor fi combinate.\nPoți conecta până la ${COUNT} conturi.\n\nAi grijă; acest lucru nu poate fi şters!",
|
||||
"linkAccountsText": "Conectează Conturi",
|
||||
"linkedAccountsText": "Conturi Conectate:",
|
||||
"manageAccountText": "Gestionează contul",
|
||||
"nameChangeConfirm": "Vrei să schimbi numele contului tău în ${NAME}?",
|
||||
"resetProgressConfirmNoAchievementsText": "Această acțiune îți va reseta progresul co-op\nși high-score-urile locale (dar nu și biletele).\nAcest lucru nu este reversibil. Sigur vrei să continui?",
|
||||
"resetProgressConfirmText": "Această acțiune îți va reseta progresul\nco-op, realizările și high-score-urile\n(dar nu și biletele). Acest lucru nu\neste reversibil. Ești sigur(ă) că vrei să continui?",
|
||||
|
|
@ -24,14 +27,16 @@
|
|||
"setAccountNameDesc": "Scrie un nume dorit de tine care vrei să se afișeze pe contul tău.\nPoți folosi și numele unui alt cont conectat de tine\nsau poți să creezi un nume unic personalizat.",
|
||||
"signInInfoText": "Conectează-te cu un cont pentru a colecta bilete, a concura online,\nşi pentru a te juca cu acelaşi cont pe dispozitive diferite.",
|
||||
"signInText": "Conectează-te",
|
||||
"signInWithAnEmailAddressText": "Conectați-vă cu o adresă de e-mail",
|
||||
"signInWithDeviceInfoText": "(un cont automat care este disponibil doar pe acest dispozitiv)",
|
||||
"signInWithDeviceText": "Conectează-te cu contul dispozitivului",
|
||||
"signInWithGameCircleText": "Conectează-te cu Game Circle",
|
||||
"signInWithGooglePlayText": "Conectează-te cu Google Play",
|
||||
"signInWithTestAccountInfoText": "(tip de cont normal; foloseşte conturile de tip 'dispozitiv' şi cele noi)",
|
||||
"signInWithTestAccountText": "Conectează-te cu un cont de test",
|
||||
"signInWithText": "Conectați-vă alb ${SERVICE}",
|
||||
"signInWithV2InfoText": "(un cont care funcționează pe toate platformele)",
|
||||
"signInWithV2Text": "Conectează-te cu un cont Bombsquad",
|
||||
"signInWithV2Text": "Conectați-vă cu un cont ${APP_NAME}",
|
||||
"signOutText": "Deconectează-te",
|
||||
"signingInText": "Se conectează...",
|
||||
"signingOutText": "Se deconectează...",
|
||||
|
|
@ -42,6 +47,7 @@
|
|||
"titleText": "Contul tău",
|
||||
"unlinkAccountsInstructionsText": "Selectează un cont pentru a-l deconecta",
|
||||
"unlinkAccountsText": "Deconectează Conturi",
|
||||
"unlinkLegacyV1AccountsText": "Deconectați conturile vechi (V1).",
|
||||
"v2LinkInstructionsText": "Folosește acest link pentru a creea un cont sau pentru a te autentifica.",
|
||||
"viaAccount": "(prin contul ${NAME})",
|
||||
"youAreSignedInAsText": "Ești conectat ca și:"
|
||||
|
|
@ -335,9 +341,14 @@
|
|||
"getMoreGamesText": "Ia mai multe MiniJocuri...",
|
||||
"titleText": "Adaugă un joc"
|
||||
},
|
||||
"addToFavoritesText": "Adauga la favorite",
|
||||
"addedToFavoritesText": "S-a adăugat '${NAME}' la Favorite.",
|
||||
"allText": "Toate",
|
||||
"allowText": "Permite",
|
||||
"alreadySignedInText": "Contul tău este deja conectat de pe un alt dispozitiv;\nte rog să schimbi conturile sau să închizi jocul de pe\nalte dispozitive și să încerci din nou.",
|
||||
"apiVersionErrorText": "Nu se poate încărca modulul ${NAME}; acesta țintește versiunea API ${VERSION_USED}, iar versiunea ${VERSION_REQUIRED} nu îl mai suportă.",
|
||||
"applyText": "Aplicați",
|
||||
"areYouSureText": "Sunteți sigur?",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(\"Auto\" activează asta doar când căștile sunt conectate)",
|
||||
"headRelativeVRAudioText": "Audio VR relativ capului",
|
||||
|
|
@ -360,7 +371,7 @@
|
|||
"boostText": "Crește",
|
||||
"bsRemoteConfigureInAppText": "${REMOTE_APP_NAME} este configurat în aplicația în sine.",
|
||||
"buttonText": "buton",
|
||||
"canWeDebugText": "Ai vrea ca BombSquad să trimită automat bug-uri,\ncrash-uri și informații de bază programatorului jocului?\n\nAceste informații nu conțin date personale, ci doar\najută la îmbunătățirea jocului.",
|
||||
"canWeDebugText": "Doriți ca ${APP_NAME} să raporteze automat bug-uri,\ncrash-uri și informații de bază pentru dezvoltator?\n\nAceste informații nu conțin date personale, ci doar\najută la îmbunătățirea jocului.",
|
||||
"cancelText": "Anulează",
|
||||
"cantConfigureDeviceText": "Scuze, dar ${DEVICE} nu este configurabil.",
|
||||
"challengeEndedText": "Acest concurs s-a terminat.",
|
||||
|
|
@ -368,6 +379,8 @@
|
|||
"chatMutedText": "Chat-ul Este Amuțit",
|
||||
"chatUnMuteText": "Dezamuțește Chat-ul",
|
||||
"choosingPlayerText": "<se alege jucătorul>",
|
||||
"claimText": "Revendică",
|
||||
"codesExplainText": "Codurile sunt furnizate de dezvoltator pentru\ndiagnosticați și corectați problemele legate de cont.",
|
||||
"completeThisLevelToProceedText": "Trebuie să completezi\nacest nivel pentru a continua!",
|
||||
"completionBonusText": "Bonus De Completare",
|
||||
"configControllersWindow": {
|
||||
|
|
@ -448,6 +461,7 @@
|
|||
"swipeText": "glisare",
|
||||
"titleText": "Configurează Touchscreen-ul"
|
||||
},
|
||||
"configureDeviceInSystemSettingsText": "${DEVICE} poate fi configurat în Setări.",
|
||||
"configureItNowText": "Vrei să îl configurezi acum?",
|
||||
"configureText": "Configurează",
|
||||
"connectMobileDevicesWindow": {
|
||||
|
|
@ -502,6 +516,7 @@
|
|||
"welcome2Text": "Mai poți primi bilete şi prin alte activități de acelaşi fel.\nBiletele se pot folosi pentru a debloca charactere, hărți,\nmini-jocuri, pentru a intra în concursurii, şi multe altele.",
|
||||
"yourPowerRankingText": "Rankul tău de Putere:"
|
||||
},
|
||||
"copyConfirmText": "Copiat în clipboard.",
|
||||
"copyOfText": "Copie de ${NAME}",
|
||||
"copyText": "Copiază",
|
||||
"createEditPlayerText": "<Creează/Editează un Profil>",
|
||||
|
|
@ -548,7 +563,10 @@
|
|||
"deleteText": "Șterge",
|
||||
"demoText": "Demo",
|
||||
"denyText": "Refuză",
|
||||
"deprecatedText": "Depreciat",
|
||||
"descriptionText": "Descriere",
|
||||
"desktopResText": "Rezoluție Desktop",
|
||||
"deviceAccountUpgradeText": "Avertizare:\nSunteți conectat cu un cont de dispozitiv (${NAME}).\nConturile de dispozitiv vor fi eliminate într-o actualizare viitoare.\nFaceți upgrade la un cont V2 dacă doriți să vă păstrați progresul.",
|
||||
"difficultyEasyText": "Ușor",
|
||||
"difficultyHardOnlyText": "Numai pe \"Greu\"",
|
||||
"difficultyHardText": "Greu",
|
||||
|
|
@ -557,6 +575,10 @@
|
|||
"disableRemoteAppConnectionsText": "Dezactivează conexiunile de pe Remote-App",
|
||||
"disableXInputDescriptionText": "Permite mai mult de 4 controlere dar nu va merge chiar așa de bine.",
|
||||
"disableXInputText": "Dezactivează XInput",
|
||||
"disabledText": "Dezactivat",
|
||||
"discardText": "Înlătură",
|
||||
"discordFriendsText": "Vrei să gasești oameni noi cu care să te joci?\nAlăturați-vă Serverul de Discord al nostru și găsiți noi prieteni!",
|
||||
"discordJoinText": "Alăturați-vă Discordului",
|
||||
"doneText": "Gata",
|
||||
"drawText": "Remiză",
|
||||
"duplicateText": "Multiplică",
|
||||
|
|
@ -590,6 +612,7 @@
|
|||
"localProfileText": "(profil local)",
|
||||
"nameDescriptionText": "Numele Jucătorului",
|
||||
"nameText": "Nume",
|
||||
"profileAlreadyExistsText": "Un profil cu acest nume există deja.",
|
||||
"randomText": "auto-generat",
|
||||
"titleEditText": "Editează profilul",
|
||||
"titleNewText": "Profil nou",
|
||||
|
|
@ -625,12 +648,13 @@
|
|||
"useMusicFolderText": "Dosar cu Fişiere Audio"
|
||||
},
|
||||
"editText": "Editează",
|
||||
"enabledText": "Activat",
|
||||
"endText": "Sfârșește",
|
||||
"enjoyText": "Bucură-te!",
|
||||
"epicDescriptionFilterText": "${DESCRIPTION} În slow motion epic.",
|
||||
"epicNameFilterText": "${NAME} Epic",
|
||||
"errorAccessDeniedText": "acces respins",
|
||||
"errorDeviceTimeIncorrectText": "Ceasul dispozitivului tău este dat înainte sau înapoi cu ${HOURS} ore.\nAcestu lucru ar putea cauza niște probleme.\nTe rog să verifici setările ceasului și ale fusului orar.",
|
||||
"errorDeviceTimeIncorrectText": "Ceasul dispozitivului tău este incorrect cu ${HOURS} ore.\nAcest lucru ar putea cauza niște probleme.\nTe rog să verifici setările ceasului și ale fusului orar.",
|
||||
"errorOutOfDiskSpaceText": "ai rămas fără memorie",
|
||||
"errorSecureConnectionFailText": "Nu s-a putut stabili o conexiune sigură cloud; funcționalitatea internetului ar putea eșua.",
|
||||
"errorText": "Eroare",
|
||||
|
|
@ -670,6 +694,8 @@
|
|||
"duplicateText": "Duplică\nLista de Jocuri",
|
||||
"editText": "Editează\nLista de Jocuri",
|
||||
"newText": "Listă de Jocuri\nNouă",
|
||||
"pointsToWinText": "Puncte pentru a câștiga",
|
||||
"seriesLengthText": "Lungimea seriei",
|
||||
"showTutorialText": "Arată Tutorialul",
|
||||
"shuffleGameOrderText": "Jocuri Aleatorii",
|
||||
"titleText": "Particularizează Listele de Jocuri de tip \"${TYPE}\""
|
||||
|
|
@ -743,6 +769,7 @@
|
|||
"manualYourLocalAddressText": "Adresa ta locală:",
|
||||
"nearbyText": "Din apropiere",
|
||||
"noConnectionText": "<fără conexiune>",
|
||||
"noPartiesAddedText": "Nu au fost adăugate părți",
|
||||
"otherVersionsText": "(alte versiuni)",
|
||||
"partyCodeText": "Codul Server-ului",
|
||||
"partyInviteAcceptText": "Acceptă",
|
||||
|
|
@ -807,17 +834,26 @@
|
|||
"youHaveShortText": "ai ${COUNT}",
|
||||
"youHaveText": "ai ${COUNT} (de) bilete"
|
||||
},
|
||||
"goldPass": {
|
||||
"desc1InfTokensText": "Jetoane infinite.",
|
||||
"desc2NoAdsText": "Fără reclame.",
|
||||
"desc3ForeverText": "Pentru totdeauna.",
|
||||
"goldPassText": "Pass de Aur"
|
||||
},
|
||||
"googleMultiplayerDiscontinuedText": "Ne pare rău, serviciul multiplayer de pe Google nu mai este disponibil.\nLucrez la un înlocuitor cât mai repede posibil.\nPână atunci, te rog să încerci o altă metodă de conectare.\n-Eric",
|
||||
"googlePlayPurchasesNotAvailableText": "Achizițiile de pe Google Play nu sunt disponibile.\nÎncearcă să actualizezi Magazin Play și să încerci din nou.",
|
||||
"googlePlayServicesNotAvailableText": "Serviciile Google Play nu sunt disponibile.\nEste posibil ca unele funcționalități ale aplicației să fie dezactivate.",
|
||||
"googlePlayText": "Google Play",
|
||||
"graphicsSettingsWindow": {
|
||||
"alwaysText": "Întotdeauna",
|
||||
"fullScreenCmdText": "Fullscreen (Cmd+F)",
|
||||
"fullScreenCtrlText": "Fullscreen (Ctrl+F)",
|
||||
"fullScreenText": "Ecran complet",
|
||||
"gammaText": "Luminozitate",
|
||||
"highText": "Înalte",
|
||||
"higherText": "Mai Înalte",
|
||||
"lowText": "Slabe",
|
||||
"maxFPSText": "Maxim de FPS",
|
||||
"mediumText": "Medii",
|
||||
"neverText": "Niciodată",
|
||||
"resolutionText": "Rezoluție",
|
||||
|
|
@ -879,6 +915,7 @@
|
|||
"importText": "Importă",
|
||||
"importingText": "Se importă...",
|
||||
"inGameClippedNameText": "va arăta astfel\n\"${NAME}\"",
|
||||
"inboxText": "Mesaje",
|
||||
"installDiskSpaceErrorText": "EROARE: Nu s-a putut completa instalarea.\nSe poate să fi rămas fără spațiu pe dispozitiv.\nEliberează niște spațiu și încearcă din nou.",
|
||||
"internal": {
|
||||
"arrowsToExitListText": "Apasă ${LEFT} sau ${RIGHT} pentru a ieși din listă",
|
||||
|
|
@ -987,6 +1024,7 @@
|
|||
"tournamentLeagueText": "Trebuie să ajungi în liga ${NAME} dacă vrei să intri în acest turneu.",
|
||||
"trophyCountsResetText": "Numărul de trofee se va reseta la sfârșitul sezonului."
|
||||
},
|
||||
"learnMoreText": "Află mai multe",
|
||||
"levelBestScoresText": "Cele mai bune scoruri din ${LEVEL}",
|
||||
"levelBestTimesText": "Cele mai scurte timpuri din ${LEVEL}",
|
||||
"levelFastestTimesText": "Cel mai rapid timp pe ${LEVEL}",
|
||||
|
|
@ -1008,6 +1046,7 @@
|
|||
"creditsText": "Credite",
|
||||
"demoMenuText": "Meniu Demonstrativ",
|
||||
"endGameText": "Sfârșește Jocul",
|
||||
"endTestText": "Încheierea testului",
|
||||
"exitGameText": "Ieși Din Joc",
|
||||
"exitToMenuText": "Revii la meniu?",
|
||||
"howToPlayText": "Cum se Joacă?",
|
||||
|
|
@ -1027,6 +1066,7 @@
|
|||
"maxConnectionsText": "Număr De Locuri",
|
||||
"maxPartySizeText": "Număr Maxim De Locuri",
|
||||
"maxPlayersText": "Locuri",
|
||||
"merchText": "Merch!",
|
||||
"modeArcadeText": "Mod Pentru Arcade",
|
||||
"modeClassicText": "Modul Clasic",
|
||||
"modeDemoText": "Modul Demonstrativ",
|
||||
|
|
@ -1046,6 +1086,7 @@
|
|||
"nameSuicideText": "${NAME} s-a sinucis.",
|
||||
"nameText": "Numele",
|
||||
"nativeText": "Nativă",
|
||||
"newExclaimText": "Nou!",
|
||||
"newPersonalBestText": "Un nou record personal a fost atins!",
|
||||
"newTestBuildAvailableText": "O nouă versiune de test a fost lansată: (${VERSION} build ${BUILD}).\nIa-o de pe ${ADDRESS}",
|
||||
"newText": "Nou",
|
||||
|
|
@ -1056,17 +1097,22 @@
|
|||
"noContinuesText": "(fără continuări)",
|
||||
"noExternalStorageErrorText": "Nu a fost găsită nicio stocare externă pe acest dispozitiv.",
|
||||
"noGameCircleText": "Eroare: nu eşti logat cu GameCircle",
|
||||
"noMessagesText": "Niciun mesaj.",
|
||||
"noPluginsInstalledText": "Nu au fost instalate pluginuri",
|
||||
"noProfilesErrorText": "Nu ai niciun Profil de Jucător, deci eşti blocat cu '${NAME}'.\nDute la Setări->Profile de Jucător pentru a-ți face un profil.",
|
||||
"noScoresYetText": "Niciun scor deocamdată.",
|
||||
"noServersFoundText": "Nu au fost găsite servere.",
|
||||
"noThanksText": "Nu Mulțumesc",
|
||||
"noTournamentsInTestBuildText": "ATENȚIE: Scorurile obținute în turnee vor fi ignorate în această versiune de test.",
|
||||
"noValidMapsErrorText": "Nu sunt hărți disponibile pentru acest mod de joc.",
|
||||
"notEnoughPlayersRemainingText": "Nu mai sunt destui jucători; ieși din joc și creează altul nou.",
|
||||
"notEnoughPlayersText": "Ai nevoie de cel puțin ${COUNT} jucători pentru a începe acest joc!",
|
||||
"notEnoughTicketsText": "Bilete insuficiente!",
|
||||
"notNowText": "Nu Acum",
|
||||
"notSignedInErrorText": "Trebuie să fi conectat cu un cont dacă vrei să faci asta.",
|
||||
"notSignedInGooglePlayErrorText": "Trebuie să fii conectat cu Google Play dacă vrei să faci asta.",
|
||||
"notSignedInText": "nu te-ai conectat cu nici un cont",
|
||||
"notUsingAccountText": "Notă: ignorând contul ${SERVICE}.\nAccesați „Cont -> Conectați-vă cu ${SERVICE}” dacă doriți să îl utilizați.",
|
||||
"nothingIsSelectedErrorText": "Nu ai selectat nimic!",
|
||||
"numberText": "#${NUMBER}",
|
||||
"offText": "Oprit",
|
||||
|
|
@ -1125,7 +1171,11 @@
|
|||
"pleaseWaitText": "Te rog să aștepți...",
|
||||
"pluginClassLoadErrorText": "Nu s-a putut încărca plugin-ul '${PLUGIN}': ${ERROR}",
|
||||
"pluginInitErrorText": "Nu s-a putut iniția plugin-ul '${PLUGIN}': ${ERROR}",
|
||||
"pluginSettingsText": "Setări Plugin",
|
||||
"pluginsAutoEnableNewText": "Activați Automat Noile Pluginuri",
|
||||
"pluginsDetectedText": "Plugin(uri) noi detectate. Restartează jocul pentru a le activa / configura în setări.",
|
||||
"pluginsDisableAllText": "Dezactivați Toate Pluginurile",
|
||||
"pluginsEnableAllText": "Activați Toate Pluginurile",
|
||||
"pluginsRemovedText": "${NUM} plugin(uri) nu mai există.",
|
||||
"pluginsText": "Plugin-uri",
|
||||
"practiceText": "Antrenament",
|
||||
|
|
@ -1158,6 +1208,8 @@
|
|||
"punchText": "Pumn",
|
||||
"purchaseForText": "Cumpără pentru ${PRICE}",
|
||||
"purchaseGameText": "Cumpără Jocul",
|
||||
"purchaseNeverAvailableText": "Ne pare rău, achizițiile nu sunt disponibile pentru această versiune.\nÎncercați să vă conectați la contul dvs. pe o altă platformă și să faceți achiziții de acolo.",
|
||||
"purchaseNotAvailableText": "Această achiziție nu este disponibilă.",
|
||||
"purchasingText": "Se cumpără...",
|
||||
"quitGameText": "Ieși din ${APP_NAME}?",
|
||||
"quittingIn5SecondsText": "Se iese în 5 secunde...",
|
||||
|
|
@ -1220,6 +1272,8 @@
|
|||
"runText": "Pentru a fugi",
|
||||
"saveText": "Salvează",
|
||||
"scanScriptsErrorText": "Una sau mai multe erori au fost detectate în timpul scanării scripturilor; vezi jurnalul de activități pentru detalii.",
|
||||
"scanScriptsMultipleModulesNeedUpdatesText": "${PATH} și alte ${NUM} module trebuie să fie actualizate pentru api ${API}.",
|
||||
"scanScriptsSingleModuleNeedsUpdatesText": "${PATH} trebuie actualizat pentru api ${API}.",
|
||||
"scoreChallengesText": "Provocări de Scor",
|
||||
"scoreListUnavailableText": "Lista de Scoruri este indisponibilă.",
|
||||
"scoreText": "Scor",
|
||||
|
|
@ -1230,6 +1284,7 @@
|
|||
},
|
||||
"scoreWasText": "(a fost ${COUNT})",
|
||||
"selectText": "Selectează",
|
||||
"sendInfoDescriptionText": "Trimite dezvoltatorului informații despre starea contului și a aplicației.\nVă rugăm să includeți numele sau motivul trimiterii.",
|
||||
"seriesWinLine1PlayerText": "CÂŞTIGĂ",
|
||||
"seriesWinLine1TeamText": "CÂŞTIGĂ",
|
||||
"seriesWinLine1Text": "CÂŞTIGĂ",
|
||||
|
|
@ -1248,6 +1303,7 @@
|
|||
"alwaysUseInternalKeyboardDescriptionText": "(o tastatură simplă, folositoare pentru controllere, care ajută la editarea textului)",
|
||||
"alwaysUseInternalKeyboardText": "Foloseşte Mereu Tastatura Internală",
|
||||
"benchmarksText": "Teste-Stres & Referințe",
|
||||
"devToolsText": "Instrumente de dezvoltare",
|
||||
"disableCameraGyroscopeMotionText": "Oprește Mișcarea Camerei De Tip Giroscop",
|
||||
"disableCameraShakeText": "Dezactivează Cutremurarea Camerei",
|
||||
"disableThisNotice": "(Poți dezactiva această notificare în setările avansate)",
|
||||
|
|
@ -1256,14 +1312,22 @@
|
|||
"enterPromoCodeText": "Introdu un cod",
|
||||
"forTestingText": "Notă: aceste valori sunt doar pentru teste şi vor fi resetate când jocul va fi închis.",
|
||||
"helpTranslateText": "Translațiile din ${APP_NAME} sunt un efort depus de comunitate.\nDacă ai dori să te implici la translatarea/corectarea unei limbi,\nurmează linkul de mai jos. Mulțumiri anticipate!",
|
||||
"insecureConnectionsDescriptionText": "nerecomandat, dar poate permite joaca online \ndin țări și network-uri restricționate",
|
||||
"insecureConnectionsText": "Folosește conexiuni nesigure",
|
||||
"kickIdlePlayersText": "Dă Afară Jucătorii Inactivi",
|
||||
"kidFriendlyModeText": "Modul Pentru Copii (mai puțină violență, etc)",
|
||||
"languageText": "Limbă",
|
||||
"moddingGuideText": "Ghid pentru Modare",
|
||||
"moddingToolsText": "Instrumente de modificare",
|
||||
"mustRestartText": "Va trebui să restartezi jocul dacă vrei ca acest lucru să își facă efectul.",
|
||||
"netTestingText": "Testarea Internetului",
|
||||
"resetText": "Resetează",
|
||||
"sendInfoText": "Trimiteți informații",
|
||||
"showBombTrajectoriesText": "Arată Traiectoriile Bombelor",
|
||||
"showDemosWhenIdleText": "Afișați demo-uri când este inactiv",
|
||||
"showDeprecatedLoginTypesText": "Afișați tipurile de conectare învechite",
|
||||
"showDevConsoleButtonText": "Afișați dev console button",
|
||||
"showInGamePingText": "Afișează ping-ul în joc",
|
||||
"showPlayerNamesText": "Arată Numele Jucătorilor",
|
||||
"showUserModsText": "Arată Folderul Pentru Moduri",
|
||||
"titleText": "Avansat",
|
||||
|
|
@ -1282,6 +1346,9 @@
|
|||
"signInWithGameCenterText": "Pentru a folosi un cont Game Center\nconectează-te folosind aplicația Game Center.",
|
||||
"singleGamePlaylistNameText": "Doar ${GAME}",
|
||||
"singlePlayerCountText": "1 jucător",
|
||||
"sizeLargeText": "Mare",
|
||||
"sizeMediumText": "Mediu",
|
||||
"sizeSmallText": "Mic",
|
||||
"soloNameFilterText": "${NAME} Solo",
|
||||
"soundtrackTypeNames": {
|
||||
"CharSelect": "Selecția Caracterului",
|
||||
|
|
@ -1357,6 +1424,8 @@
|
|||
"storeText": "Magazin",
|
||||
"submitText": "Trimite",
|
||||
"submittingPromoCodeText": "Se trimite Codul...",
|
||||
"successText": "Succes!",
|
||||
"supportEmailText": "Dacă întâmpinați probleme cu\naplicația, vă rugăm să trimiteți un e-mail la ${EMAIL}.",
|
||||
"teamNamesColorText": "Numele/Culorile Echipelor",
|
||||
"telnetAccessGrantedText": "Acces la Telnet permis.",
|
||||
"telnetAccessText": "Acces Telnet detectat; îl permiți?",
|
||||
|
|
@ -1376,6 +1445,17 @@
|
|||
"tipText": "Sfat",
|
||||
"titleText": "BombSquad",
|
||||
"titleVRText": "BombSquad VR",
|
||||
"tokens": {
|
||||
"getTokensText": "Obțineți jetoane",
|
||||
"notEnoughTokensText": "Insuficiente jetoane!",
|
||||
"numTokensText": "${COUNT} Jetoane",
|
||||
"shinyNewCurrencyText": "Noua monedă strălucitoare a BombSquad-ului.",
|
||||
"tokenPack1Text": "Pachet mic de jetoane",
|
||||
"tokenPack2Text": "Pachet mediu de jetoane",
|
||||
"tokenPack3Text": "Pachet mare de jetoane",
|
||||
"tokenPack4Text": "Pachet de jetoane Jumbo",
|
||||
"youHaveGoldPassText": "Ai un permis de aur.\nToate achizițiile de jetoane sunt gratuite.\nBucurați-vă!"
|
||||
},
|
||||
"topFriendsText": "Prieteni de Top",
|
||||
"tournamentCheckingStateText": "Se verifică starea campionatului; aşteaptă...",
|
||||
"tournamentEndedText": "Acest turneu s-a terminat. Altul nou va începe în curând.",
|
||||
|
|
@ -1384,6 +1464,7 @@
|
|||
"tournamentStandingsText": "Clasamentele Turneului",
|
||||
"tournamentText": "Turneu",
|
||||
"tournamentTimeExpiredText": "Timpul Turneului a Expirat",
|
||||
"tournamentsDisabledWorkspaceText": "Turneele sunt dezactivate atunci când spațiile de lucru sunt active.\nPentru a reactiva turneele, dezactivați spațiul de lucru și reporniți.",
|
||||
"tournamentsText": "Turnee",
|
||||
"translations": {
|
||||
"characterNames": {
|
||||
|
|
@ -1536,7 +1617,9 @@
|
|||
"Italian": "Italiană",
|
||||
"Japanese": "Japoneză",
|
||||
"Korean": "Coreană",
|
||||
"Malay": "Malaeză",
|
||||
"Persian": "Persană",
|
||||
"PirateSpeak": "Limba Piraților",
|
||||
"Polish": "Poloneză",
|
||||
"Portuguese": "Portugheză",
|
||||
"Romanian": "Română",
|
||||
|
|
@ -1650,6 +1733,7 @@
|
|||
"You got ${COUNT} tickets!": "Ai primit ${COUNT} (de) bilete!",
|
||||
"You got a ${ITEM}!": "Ai primit 1 ${ITEM}!",
|
||||
"You have been promoted to a new league; congratulations!": "Ai fost promovat la o ligă noua; felicitări!",
|
||||
"You must update the app to view this.": "Trebuie să actualizezi aplicația pentru a vedea asta.",
|
||||
"You must update to a newer version of the app to do this.": "Trebuie să-ți actualizezi aplicația la o versiune mai nouă pentru a face asta.",
|
||||
"You must update to the newest version of the game to do this.": "Trebuie să-ți actualizezi jocul la o versiune mai nouă pentru a face asta.",
|
||||
"You must wait a few seconds before entering a new code.": "Va trebui să aştepți câteva secunde înainte să introduci un cod nou.",
|
||||
|
|
@ -1804,11 +1888,13 @@
|
|||
"toSkipPressAnythingText": "(apasă orice buton pentru a trece peste tutorial)"
|
||||
},
|
||||
"twoKillText": "DUBLU OMOR!",
|
||||
"uiScaleText": "Mărime Interfață",
|
||||
"unavailableText": "indisponibil",
|
||||
"unconfiguredControllerDetectedText": "Controller neconfigurat detectat:",
|
||||
"unlockThisInTheStoreText": "Acest lucru trebuie deblocat din magazin.",
|
||||
"unlockThisProfilesText": "Că să creezi mai mult de ${NUM} profile, va trebui să ai:",
|
||||
"unlockThisText": "Pentru a debloca acest lucru, vei avea nevoie de:",
|
||||
"unsupportedControllerText": "Ne pare rau, controller-ul \"${NAME}\" nu este suportat",
|
||||
"unsupportedHardwareText": "Scuze, acest hardware nu este suportat de această versiune a jocului.",
|
||||
"upFirstText": "Primul joc:",
|
||||
"upNextText": "Următorul joc cu numărul ${COUNT} este:",
|
||||
|
|
@ -1816,10 +1902,15 @@
|
|||
"upgradeText": "Îmbunătățeşte",
|
||||
"upgradeToPlayText": "Deblochează \"${PRO}\" în magazinul din joc pentru a juca această hartă.",
|
||||
"useDefaultText": "Folosește Setările Prestabilite",
|
||||
"userSystemScriptsCreateText": "Creați scripturi de sistem utilizator",
|
||||
"userSystemScriptsDeleteText": "Ștergeți scripturile de sistem utilizator",
|
||||
"usesExternalControllerText": "Acest joc folosește un controller extern ca dispozitiv de intrare.",
|
||||
"usingItunesText": "Se folosește Aplicația de Muzică pentru soundtrack...",
|
||||
"usingItunesTurnRepeatAndShuffleOnText": "Fii sigur(ă) că shuffle e activat și repeat e pus pe ALL în iTunes.",
|
||||
"v2AccountLinkingInfoText": "Pentru a conecta conturile V2, utilizați butonul „Gestionați contul\".",
|
||||
"v2AccountRequiredText": "Acest lucru necesită un cont V2. Actualizați-vă contul și încercați din nou.",
|
||||
"validatingTestBuildText": "Se Validează Versiunea De Test...",
|
||||
"viaText": "prin",
|
||||
"victoryText": "Victorie!",
|
||||
"voteDelayText": "Poți începe alt vot peste ${NUMBER} (de) secunde",
|
||||
"voteInProgressText": "Un vot este deja în progres.",
|
||||
|
|
@ -1851,6 +1942,7 @@
|
|||
},
|
||||
"waveText": "Valul",
|
||||
"wellSureText": "Sigur!",
|
||||
"whatIsThisText": "Ce este asta?",
|
||||
"wiimoteLicenseWindow": {
|
||||
"titleText": "Copyright de către DarwiinRemote"
|
||||
},
|
||||
|
|
|
|||
346
dist/ba_data/data/languages/russian.json
vendored
346
dist/ba_data/data/languages/russian.json
vendored
|
|
@ -7,7 +7,9 @@
|
|||
"campaignProgressText": "Прогресс кампании [Сложный режим]: ${PROGRESS}",
|
||||
"changeOncePerSeason": "Вы можете изменить это только раз в сезон.",
|
||||
"changeOncePerSeasonError": "Вы должны подождать до следующего сезона, чтобы изменить это снова (${NUM} дней)",
|
||||
"createAnAccountText": "Создать аккаунт",
|
||||
"customName": "Имя пользователя",
|
||||
"deleteAccountText": "Удалить аккаунт",
|
||||
"deviceSpecificAccountText": "Сейчас используется аккаунт имениустройства: ${NAME}",
|
||||
"googlePlayGamesAccountSwitchText": "Если хотите сменить внутриигровой аккаунт Google,\nиспользуйте приложение Google Play.",
|
||||
"linkAccountsEnterCodeText": "Введите код",
|
||||
|
|
@ -36,7 +38,7 @@
|
|||
"signInWithTestAccountText": "Войти через тестовый аккаунт",
|
||||
"signInWithText": "Войти при помощи ${SERVICE}",
|
||||
"signInWithV2InfoText": "(аккаунт, который работает на всех платформах)",
|
||||
"signInWithV2Text": "Войти через аккаунт BombSquad",
|
||||
"signInWithV2Text": "Войти через аккаунт ${APP_NAME}",
|
||||
"signOutText": "Выйти",
|
||||
"signingInText": "Вход...",
|
||||
"signingOutText": "Выход...",
|
||||
|
|
@ -47,7 +49,7 @@
|
|||
"titleText": "Аккаунт",
|
||||
"unlinkAccountsInstructionsText": "Выберите аккаунт, который хотите отвязать",
|
||||
"unlinkAccountsText": "Отвязать аккаунты",
|
||||
"unlinkLegacyV1AccountsText": "Разблокируйте устаревшие (V1) аккаунты",
|
||||
"unlinkLegacyV1AccountsText": "Отвязать устаревшие (V1) аккаунты",
|
||||
"v2LinkInstructionsText": "Используйте эту ссылку чтобы создать аккаунт или войти",
|
||||
"viaAccount": "(через аккаунт ${NAME})",
|
||||
"youAreLoggedInAsText": "Вы зашли как:",
|
||||
|
|
@ -57,10 +59,10 @@
|
|||
"achievementText": "Достижение",
|
||||
"achievements": {
|
||||
"Boom Goes the Dynamite": {
|
||||
"description": "Убейте 3 плохих парней с помощью TNT",
|
||||
"description": "Убейте 3 негодяев с помощью TNT",
|
||||
"descriptionComplete": "С помощью TNT убито 3 негодяев",
|
||||
"descriptionFull": "Убейте 3 негодяев с помощью TNT на уровне ${LEVEL}",
|
||||
"descriptionFullComplete": "3 плохих парней убито с помощью TNT на уровне ${LEVEL}",
|
||||
"descriptionFullComplete": "3 негодяев убито с помощью TNT на уровне ${LEVEL}",
|
||||
"name": "Динамит делает “БУМ”!"
|
||||
},
|
||||
"Boxer": {
|
||||
|
|
@ -128,7 +130,7 @@
|
|||
"name": "Волшебник уровня ${LEVEL}"
|
||||
},
|
||||
"Mine Games": {
|
||||
"description": "Убейте 3 плохих парней с помощью мин",
|
||||
"description": "Убейте 3 негодяев с помощью мин",
|
||||
"descriptionComplete": "С помощью мин убита тройка плохих парней",
|
||||
"descriptionFull": "Убейте 3 негодяев с помощью мин на уровне ${LEVEL}",
|
||||
"descriptionFullComplete": "С помощью мин убито 3 негодяя на уровне ${LEVEL}",
|
||||
|
|
@ -254,8 +256,8 @@
|
|||
"name": "Волшебник уровня ${LEVEL}"
|
||||
},
|
||||
"Sharing is Caring": {
|
||||
"descriptionFull": "Успешно поделиться игрой с другом",
|
||||
"descriptionFullComplete": "Игра успешно передана другу",
|
||||
"descriptionFull": "Успешно поделитесь игрой с другом",
|
||||
"descriptionFullComplete": "Игра успешно поделена с другом",
|
||||
"name": "Делиться - значит заботиться"
|
||||
},
|
||||
"Stayin' Alive": {
|
||||
|
|
@ -339,7 +341,7 @@
|
|||
"achievementsUnavailableForOldSeasonsText": "К сожалению, подробности достижений не доступны для старых сезонов.",
|
||||
"activatedText": "${THING} активировано.",
|
||||
"addGameWindow": {
|
||||
"getMoreGamesText": "Еще игры",
|
||||
"getMoreGamesText": "Больше игр...",
|
||||
"titleText": "Добавить игру"
|
||||
},
|
||||
"addToFavoritesText": "Добавить в избранное",
|
||||
|
|
@ -348,6 +350,8 @@
|
|||
"allowText": "Разрешить",
|
||||
"alreadySignedInText": "С вашего аккаунта играют на другом устройстве;\nпожалуйста зайдите с другого аккаунта или закройте\nигру на другом устройстве и попытайтесь снова.",
|
||||
"apiVersionErrorText": "Невозможно загрузить модуль ${NAME}; он предназначен для API версии ${VERSION_USED}; здесь требуется версия ${VERSION_REQUIRED}.",
|
||||
"applyText": "Применить",
|
||||
"areYouSureText": "Вы уверены?",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(Режим \"Авто\" активируется только при подключении наушников)",
|
||||
"headRelativeVRAudioText": "Позиционно-зависимое VR-аудио",
|
||||
|
|
@ -372,14 +376,23 @@
|
|||
"boostText": "Увеличение",
|
||||
"bsRemoteConfigureInAppText": "${REMOTE_APP_NAME} настраивается в самом приложении.",
|
||||
"buttonText": "кнопка",
|
||||
"canWeDebugText": "Хотите, чтобы BombSquad автоматически сообщал разработчику\nоб ошибках, сбоях и основную информацию об использовании?\n\nЭти данные не содержат никакой личной информации и помогают\nподдерживать игру в рабочем состоянии без сбоев и ошибок.",
|
||||
"canWeDebugText": "Хотите, чтобы ${APP_NAME} автоматически сообщал разработчику\nоб ошибках, сбоях и основную информацию об использовании?\n\nЭти данные не содержат никакой личной информации и помогают\nподдерживать игру в рабочем состоянии без сбоев и ошибок.",
|
||||
"cancelText": "Отмена",
|
||||
"cantConfigureDeviceText": "Извините, ${DEVICE} невозможно настроить.",
|
||||
"challengeEndedText": "Это состязание завершено.",
|
||||
"chatMuteText": "Заглушить чат",
|
||||
"chatMutedText": "Чат заглушен",
|
||||
"chatUnMuteText": "Включить чат",
|
||||
"chests": {
|
||||
"prizeOddsText": "Награды",
|
||||
"reduceWaitText": "Ускорить открытие",
|
||||
"slotDescriptionText": "В этом слоте может находиться сундук.\n\nПолучайте сундуки за уровни кампании, \nместа в турнирах и выполнение \nдостижений.",
|
||||
"slotText": "Слот сундука ${NUM}",
|
||||
"slotsFullWarningText": "ВНИМАНИЕ: Ваш инвентарь заполнен.\nЛюбые сундуки, которые вы получите, будут утеряны.",
|
||||
"unlocksInText": "Отпирается в"
|
||||
},
|
||||
"choosingPlayerText": "<выбор игрока>",
|
||||
"claimText": "Забрать",
|
||||
"codesExplainText": "Коды предоставлены разработчиком, чтобы\nвыявлять и исправлять ошибки с аккаунтом.",
|
||||
"completeThisLevelToProceedText": "Чтобы продолжить, нужно\nпройти этот уровень!",
|
||||
"completionBonusText": "Бонус за прохождение",
|
||||
|
|
@ -437,7 +450,7 @@
|
|||
"secondaryText": "Второй геймпад",
|
||||
"startButtonActivatesDefaultDescriptionText": "(выключить, если ваша кнопка \"старт\" работает в качестве кнопки \"меню\")",
|
||||
"startButtonActivatesDefaultText": "Кнопка Старт активирует стандартный виджет",
|
||||
"titleText": "Настройка геймпада",
|
||||
"titleText": "Настройка джойстика",
|
||||
"twoInOneSetupText": "Настройка геймпада 2-в-1",
|
||||
"uiOnlyDescriptionText": "(Запретить этому контроллеру присоединяться к игре)",
|
||||
"uiOnlyText": "Ограничить только для меню",
|
||||
|
|
@ -453,7 +466,7 @@
|
|||
"configTouchscreenWindow": {
|
||||
"actionControlScaleText": "Размеры кнопок действия",
|
||||
"actionsText": "Действия",
|
||||
"buttonsText": "кнопки",
|
||||
"buttonsText": "Кнопки",
|
||||
"dragControlsText": "< чтобы передвинуть элементы управления, перетащите их >",
|
||||
"joystickText": "джойстик",
|
||||
"movementControlScaleText": "Размеры кнопок движения",
|
||||
|
|
@ -519,7 +532,7 @@
|
|||
"totalText": "всего",
|
||||
"tournamentInfoText": "Добейся высокого результата с\nдругими игроками твоей лиги.\n\nНаграды вручаются самым крутым\nпо окончании турнира.",
|
||||
"welcome1Text": "Добро пожаловать в ${LEAGUE}. Вы можете\nповысить свою лигу получая звёзды, получая \nдостижения и выигрывая трофеи в турнирах.",
|
||||
"welcome2Text": "Вы также можете заработать билеты от многих из тех же видов деятельности.\nБилеты могут быть использованы , чтобы разблокировать новые персонажи , карты и\nмини -игры, чтобы войти турниры, и многое другое.",
|
||||
"welcome2Text": "Вы также можете заработать билеты от многих из тех же видов деятельности.\nБилеты могут быть использованы, чтобы разблокировать новых персонажей, карты и\nмини-игры, для участия в турнирах, и многое другое.",
|
||||
"yourPowerRankingText": "Ваш ранг:"
|
||||
},
|
||||
"copyConfirmText": "Скопировано в буфер обмена",
|
||||
|
|
@ -532,7 +545,7 @@
|
|||
"creditsWindow": {
|
||||
"additionalAudioArtIdeasText": "Дополнительное аудио, предварительные иллюстрации и идеи: ${NAME}",
|
||||
"additionalMusicFromText": "Дополнительная музыка: ${NAME}",
|
||||
"allMyFamilyText": "Всем моим друзьям и семье, которые помогли играть тестовую версию",
|
||||
"allMyFamilyText": "Всем моим друзьям и семье, которые тестировали игру",
|
||||
"codingGraphicsAudioText": "Программирование, графика и аудио: ${NAME}",
|
||||
"languageTranslationsText": "Языковые переводы:",
|
||||
"legalText": "Юридическая информация:",
|
||||
|
|
@ -558,12 +571,12 @@
|
|||
"runMediaReloadBenchmarkText": "Запустить тест производительности загрузки медиа",
|
||||
"runStressTestText": "Выполнить тест-нагрузку",
|
||||
"stressTestPlayerCountText": "Количество игроков",
|
||||
"stressTestPlaylistDescriptionText": "Плей-лист нагрузочного испытания",
|
||||
"stressTestPlaylistNameText": "Название плей-листа",
|
||||
"stressTestPlaylistTypeText": "Тип плей-листа",
|
||||
"stressTestPlaylistDescriptionText": "Плейлист нагрузочного испытания",
|
||||
"stressTestPlaylistNameText": "Название плейлиста",
|
||||
"stressTestPlaylistTypeText": "Тип плейлиста",
|
||||
"stressTestRoundDurationText": "Продолжительность раунда",
|
||||
"stressTestTitleText": "Тест-нагрузка",
|
||||
"titleText": "Тесты производительности и тесты-нагрузки",
|
||||
"titleText": "Отладочная и Стресс Тесты",
|
||||
"totalReloadTimeText": "Общее время перезагрузки: ${TIME} (подробности см. в логе)",
|
||||
"unlockCoopText": "Разблокировать кооперативные уровни"
|
||||
},
|
||||
|
|
@ -576,20 +589,21 @@
|
|||
"deleteText": "Удалить",
|
||||
"demoText": "Демонстрация",
|
||||
"denyText": "Отклонить",
|
||||
"deprecatedText": "Устарело>=",
|
||||
"deprecatedText": "Устарело",
|
||||
"descriptionText": "Описание",
|
||||
"desktopResText": "Разреш. экрана",
|
||||
"deviceAccountUpgradeText": "Внимание!\nВы заригестрированы как (${NAME})!\nДанный аккаунт будет удален в следующем обновлении!\nОбновите его до аккаунта Google Play, если не хотите потерять прогресс!",
|
||||
"deviceAccountUpgradeText": "Внимание!\nВы зарегистрированы как (${NAME})!\nДанный аккаунт будет удален в следующем обновлении!\nОбновите его до аккаунта нового типа (V2), если не хотите потерять прогресс!",
|
||||
"difficultyEasyText": "Легкий",
|
||||
"difficultyHardOnlyText": "Только в трудном режиме",
|
||||
"difficultyHardText": "Трудный",
|
||||
"difficultyHardUnlockOnlyText": "Этот уровень может быть открыт только в сложном режиме.\nДумаете, сможете это сделать!?!?!",
|
||||
"directBrowserToURLText": "Пожалуйста, направьте веб-браузер по следующему адресу:",
|
||||
"disableRemoteAppConnectionsText": "Отключить соединения RemoteApp",
|
||||
"disableXInputDescriptionText": "Позволяет подключение более 4 контроллеров, но может не очень хорошо работать.",
|
||||
"disableXInputDescriptionText": "Позволяет подключить более 4 контроллеров, но может не очень хорошо работать.",
|
||||
"disableXInputText": "Отключить XInput",
|
||||
"disabledText": "Отключено",
|
||||
"discordFriendsText": "Желаете поискать новых людей с которыми можно поиграть?\nПрисоединяйтесь к нашему Discord и находите новых друзей!",
|
||||
"discardText": "Отклонить",
|
||||
"discordFriendsText": "Желаете поискать новых людей с которыми можно поиграть?\nПрисоединяйтесь к нашему Discord серверу и находите новых друзей!",
|
||||
"discordJoinText": "Присоединиться к Discord",
|
||||
"doneText": "Готово",
|
||||
"drawText": "Ничья",
|
||||
|
|
@ -615,7 +629,7 @@
|
|||
"characterText": "персонаж",
|
||||
"checkingAvailabilityText": "Проверка доступности для \"${NAME}\"...",
|
||||
"colorText": "цвет",
|
||||
"getMoreCharactersText": "Еще персонажей...",
|
||||
"getMoreCharactersText": "Больше персонажей...",
|
||||
"getMoreIconsText": "Еще иконок...",
|
||||
"globalProfileInfoText": "Глобальным профилям игроков гарантированы уникальные\nимена. У них также есть дополнительные иконки.",
|
||||
"globalProfileText": "(глобальный профиль)",
|
||||
|
|
@ -645,10 +659,10 @@
|
|||
"defaultSoundtrackNameText": "Стандартный саундтрек",
|
||||
"deleteConfirmText": "Удалить саундтрек:\n\n${NAME}'?",
|
||||
"deleteText": "Удалить\nсаундтрек",
|
||||
"duplicateText": "Копировать\nсаундтрек",
|
||||
"duplicateText": "Сделать копию\nСаундтрека",
|
||||
"editSoundtrackText": "Редактор саундтрека",
|
||||
"editText": "Изменить\nсаундтрек",
|
||||
"fetchingITunesText": "загрузка плей-листов Music App…",
|
||||
"fetchingITunesText": "загрузка плейлистов...",
|
||||
"musicVolumeZeroWarning": "Внимание: громкость музыки установлена на 0",
|
||||
"nameText": "Название",
|
||||
"newSoundtrackNameText": "Мой саундтрек ${COUNT}",
|
||||
|
|
@ -677,6 +691,8 @@
|
|||
"errorText": "Ошибка",
|
||||
"errorUnknownText": "неизвестная ошибка",
|
||||
"exitGameText": "Выйти из ${APP_NAME}?",
|
||||
"expiredAgoText": "Истёк ${T} назад",
|
||||
"expiresInText": "Истекает через ${T}",
|
||||
"exportSuccessText": "'${NAME}' экспортирован.",
|
||||
"externalStorageText": "Внешняя память",
|
||||
"failText": "Провал",
|
||||
|
|
@ -689,7 +705,7 @@
|
|||
},
|
||||
"filterText": "Поиск",
|
||||
"finalScoreText": "Финальные очки",
|
||||
"finalScoresText": "Финальные очки",
|
||||
"finalScoresText": "Финальный результат",
|
||||
"finalTimeText": "Финальное время",
|
||||
"finishingInstallText": "Завершается установка, минутку...",
|
||||
"fireTVRemoteWarningText": "* Для лучшего результата используйте\nгеймпады или установите\nприложение '${REMOTE_APP_NAME}'\nна ваших телефонах и планшетах.",
|
||||
|
|
@ -743,6 +759,7 @@
|
|||
"copyCodeConfirmText": "Код скопирован в буфер обмена.",
|
||||
"copyCodeText": "Копировать код",
|
||||
"dedicatedServerInfoText": "Для лучшего результата создайте отдельный сервер. Смотри bombsquadgame.com/server чтобы узнать как.",
|
||||
"descriptionShortText": "Используйте окно мультиплеера, чтобы присоединиться к лобби.",
|
||||
"disconnectClientsText": "Это отключит ${COUNT} игроков\nв вашем лобби. Вы уверены?",
|
||||
"earnTicketsForRecommendingAmountText": "Друзья получат ${COUNT} билетов, если они активируют ваш код\n(а вы будете получать ${YOU_COUNT} билетов за каждую активацию)",
|
||||
"earnTicketsForRecommendingText": "Поделись игрой\nПолучи билеты...",
|
||||
|
|
@ -772,7 +789,7 @@
|
|||
"internetText": "Интернет",
|
||||
"inviteAFriendText": "Друзья еще не играют? Пригласи их\nпопробовать и они получат ${COUNT} билетов.",
|
||||
"inviteFriendsText": "Пригласить друзей",
|
||||
"joinPublicPartyDescriptionText": "Присоединитесь к публичному лобби",
|
||||
"joinPublicPartyDescriptionText": "Публичные лобби",
|
||||
"localNetworkDescriptionText": "Присоединяйтесь к ближайшему лобби (локальная сеть, Bluetooth, и т.д.)",
|
||||
"localNetworkText": "Локальная сеть",
|
||||
"makePartyPrivateText": "Сделать мое лобби приватным",
|
||||
|
|
@ -790,7 +807,7 @@
|
|||
"manualYourLocalAddressText": "Ваш локальный адрес:",
|
||||
"nearbyText": "Поблизости",
|
||||
"noConnectionText": "<нет соединения>",
|
||||
"noPartiesAddedText": "Вечеринки не добавлены",
|
||||
"noPartiesAddedText": "Партии Не Добавлены",
|
||||
"otherVersionsText": "(другие версии)",
|
||||
"partyCodeText": "Код лобби",
|
||||
"partyInviteAcceptText": "Принять",
|
||||
|
|
@ -798,13 +815,13 @@
|
|||
"partyInviteGooglePlayExtraText": "(смотрите вкладку 'Google Play' в разделе 'Собрать')",
|
||||
"partyInviteIgnoreText": "Игнорировать",
|
||||
"partyInviteText": "${NAME} пригласил\nвас в его лобби!",
|
||||
"partyNameText": "Имя команды",
|
||||
"partyNameText": "Название лобби",
|
||||
"partyServerRunningText": "Твой сервер для лобби работает.",
|
||||
"partySizeText": "Игроки",
|
||||
"partySizeText": "Размер лобби",
|
||||
"partyStatusCheckingText": "Проверка...",
|
||||
"partyStatusJoinableText": "Ваша команда доступна через интернет",
|
||||
"partyStatusJoinableText": "Ваше лобби теперь доступно для подключения через интернет",
|
||||
"partyStatusNoConnectionText": "Невозможно подключиться к серверу",
|
||||
"partyStatusNotJoinableText": "Ваше лобби недоступно через интернет",
|
||||
"partyStatusNotJoinableText": "Подключение к вашему лобби недоступно через интернет",
|
||||
"partyStatusNotPublicText": "Ваше лобби не публично",
|
||||
"pingText": "Пинг",
|
||||
"portText": "Порт",
|
||||
|
|
@ -813,9 +830,9 @@
|
|||
"privatePartyJoinText": "Присоединиться к частному лобби",
|
||||
"privateText": "Частный",
|
||||
"publicHostRouterConfigText": "Это может потребовать настройки переадресации портов на вашем маршрутизаторе. Для более легкого варианта организуйте частное лобби.",
|
||||
"publicText": "Открытый",
|
||||
"publicText": "Публичный",
|
||||
"requestingAPromoCodeText": "Запрашиваем код...",
|
||||
"sendDirectInvitesText": "Послать приглашение",
|
||||
"sendDirectInvitesText": "Отправить приглашение",
|
||||
"shareThisCodeWithFriendsText": "Поделись кодом с друзьями:",
|
||||
"showMyAddressText": "Показать мой адрес",
|
||||
"startAdvertisingText": "Включить доступ",
|
||||
|
|
@ -864,6 +881,12 @@
|
|||
"youHaveShortText": "у вас ${COUNT}",
|
||||
"youHaveText": "У вас ${COUNT} билетов"
|
||||
},
|
||||
"goldPass": {
|
||||
"desc1InfTokensText": "Неограниченные жетоны.",
|
||||
"desc2NoAdsText": "Без рекламы.",
|
||||
"desc3ForeverText": "Навсегда.",
|
||||
"goldPassText": "Золотой пропуск"
|
||||
},
|
||||
"googleMultiplayerDiscontinuedText": "Простите, сервис многопользовательской игры Google больше не поддерживается.\nЯ работаю над заменой так быстро, насколько это возможно.\nДо тех пор, пожалуйста выберете другой способ подключения.\n-Эрик",
|
||||
"googlePlayPurchasesNotAvailableText": "Покупки в Google Play недоступны.\nВозможно, вам необходимо обновить приложение магазина.",
|
||||
"googlePlayServicesNotAvailableText": "Сервисы Google Play недоступны.\nНекоторый функционал игры могут быть отключены.",
|
||||
|
|
@ -884,9 +907,9 @@
|
|||
"showFPSText": "Показывать FPS",
|
||||
"texturesText": "Текстуры",
|
||||
"titleText": "Графика",
|
||||
"tvBorderText": "Граница телевизора",
|
||||
"verticalSyncText": "Вертикальная синхронизация (V-Sync)",
|
||||
"visualsText": "Визуальные эффекты"
|
||||
"tvBorderText": "Граница экрана",
|
||||
"verticalSyncText": "Вертикальная синхронизация",
|
||||
"visualsText": "Видеоряд"
|
||||
},
|
||||
"helpWindow": {
|
||||
"bombInfoText": "- Бомба -\nСильнее ударов, но может привести\nк смертельным повреждениям. Для\nнаилучших результатов бросать в\nпротивника пока не догорел фитиль.",
|
||||
|
|
@ -902,7 +925,7 @@
|
|||
"controlsText": "Управление",
|
||||
"devicesInfoText": "В VR-версию ${APP_NAME} можно играть по сети с обычной версией,\nтак что вытаскивайте свои дополнительные телефоны, планшеты\nи компьютеры, и играйте на них. Можно даже подключить\nобычную версию игры к VR-версии, чтобы позволить\nостальным наблюдать за действием.",
|
||||
"devicesText": "Устройства",
|
||||
"friendsGoodText": "Бывают полезны. В ${APP_NAME} веселее играть с несколькими игроками;\nподдерживается до 8 игроков одновременно, что приводит нас к:",
|
||||
"friendsGoodText": "Бывают полезны. ${APP_NAME} веселее всего с несколькими игроками\nи поддерживает до 8 одновременно, что приводит нас к:",
|
||||
"friendsText": "Друзья",
|
||||
"jumpInfoText": "- Прыжок -\nПрыгайте для перескакивания,\nшвыряния предметов подальше\nили для выражения радости.",
|
||||
"orPunchingSomethingText": "Или ударить, сбросить с обрыва и взорвать бомбой-липучкой по дороге вниз.",
|
||||
|
|
@ -913,28 +936,28 @@
|
|||
"powerupCurseNameText": "Проклятие",
|
||||
"powerupHealthDescriptionText": "Ни за что не догадаетесь.\nВозвращает полное здоровье.",
|
||||
"powerupHealthNameText": "Аптечка",
|
||||
"powerupIceBombsDescriptionText": "Слабее, чем обычные бомбы\nно оставляет врагов заморожеными\nи чрезвычайно хрупкими.",
|
||||
"powerupIceBombsDescriptionText": "Слабее, чем обычные бомбы\nно оставляет врагов заморожеными\nи в частности хрупкими.",
|
||||
"powerupIceBombsNameText": "Ледяные бомбы",
|
||||
"powerupImpactBombsDescriptionText": "Чуть слабее обычных бомб,\nно взрываются при ударе.",
|
||||
"powerupImpactBombsDescriptionText": "Чуть слабее обычных бомб,\nно взрываются при соприкосновении.",
|
||||
"powerupImpactBombsNameText": "Моментальные бомбы",
|
||||
"powerupLandMinesDescriptionText": "Выдаются по 3 штуки.\nПолезны для защиты базы или\nусмирения быстроногих врагов.",
|
||||
"powerupLandMinesNameText": "Мины",
|
||||
"powerupPunchDescriptionText": "Делают ваши удары быстрее,\nлучше, сильнее.",
|
||||
"powerupPunchNameText": "Боксерские перчатки",
|
||||
"powerupShieldDescriptionText": "Немного поглощает урон,\nвместо вас.",
|
||||
"powerupShieldDescriptionText": "Немного поглощает повреждения,\nчтобы тебе не пришлось.",
|
||||
"powerupShieldNameText": "Энергетический щит",
|
||||
"powerupStickyBombsDescriptionText": "Липнут ко всему, чего касаются.\nИ начинается веселье.",
|
||||
"powerupStickyBombsNameText": "Бомбы-липучки",
|
||||
"powerupsSubtitleText": "Конечно, ни одна игра не обходится без усилителей:",
|
||||
"powerupsText": "Усилители",
|
||||
"punchInfoText": "- Удар -\nЧем быстрее двигаются кулаки -\nтем cильнее удар. Так что бегайте\nи крутитесь как ненормальные.",
|
||||
"runInfoText": "- Бег -\nДля бега удерживайте нажатой ЛЮБУЮ кнопку. Для этого хороши верхние триггеры\nили плечевые кнопки, если они у вас есть. Бегом передвигаться быстрее,\nно труднее поворачивать, так что осторожно с обрывами.",
|
||||
"runInfoText": "- Бег -\nДля бега удерживайте нажатой ЛЮБУЮ кнопку. Для этого хороши триггеры и верхние кнопки, если они у вас есть.\nБегом передвигаться быстрее, но труднее поворачивать, так что смотри за обрывами.",
|
||||
"someDaysText": "Иногда просто хочется что-нибудь ударить. Или взорвать.",
|
||||
"titleText": "Справка ${APP_NAME}",
|
||||
"toGetTheMostText": "Чтобы выжать максимум из этой игры, вам необходимо:",
|
||||
"welcomeText": "Добро пожаловать в ${APP_NAME}!"
|
||||
},
|
||||
"holdAnyButtonText": "<держать любую кнопку>",
|
||||
"holdAnyButtonText": "<удерживать любую кнопку>",
|
||||
"holdAnyKeyText": "<держать любую клавишу>",
|
||||
"hostIsNavigatingMenusText": "- ${HOST} в меню навигации как босс -",
|
||||
"importPlaylistCodeInstructionsText": "Используйте показанный код, чтобы импортировать этот плейлист где-то ещё:",
|
||||
|
|
@ -942,19 +965,20 @@
|
|||
"importText": "Импорт",
|
||||
"importingText": "Импортирую...",
|
||||
"inGameClippedNameText": "В игре будет\n\"${NAME}\"",
|
||||
"inboxText": "Почта",
|
||||
"installDiskSpaceErrorText": "ОШИБКА: не удалось завершить установку. Может быть,\nне хватает свободного места на вашем устройстве.\nОсвободите место и попробуйте еще раз.",
|
||||
"internal": {
|
||||
"arrowsToExitListText": "чтобы выйти из списка нажмите ${LEFT} или ${RIGHT}",
|
||||
"buttonText": "кнопка",
|
||||
"cantKickHostError": "Невозможно кикнуть создателя.",
|
||||
"chatBlockedText": "${NAME} заблокирован на ${TIME} секунд.",
|
||||
"chatBlockedText": "Игроку ${NAME} заблокирован чат на ${TIME} секунд.",
|
||||
"connectedToGameText": "Вошел в игру '${NAME}'",
|
||||
"connectedToPartyText": "Вошел в лобби ${NAME}!",
|
||||
"connectingToPartyText": "Идет соединение...",
|
||||
"connectionFailedHostAlreadyInPartyText": "Соединение не удалось; хост находится в другом лобби.",
|
||||
"connectionFailedPartyFullText": "Соединение не удалось; группа полная",
|
||||
"connectionFailedText": "Соединение не удалось.",
|
||||
"connectionFailedVersionMismatchText": "Соединение не удалось; хост использует другую версию игры.\nУбедитесь, что версии обеих сторон обновлены, и попытайтесь снова.",
|
||||
"connectionFailedVersionMismatchText": "Соединение не удалось; хост использует другую версию игры.\nУбедитесь, что версии обеих сторон совпадают, и попытайтесь снова.",
|
||||
"connectionRejectedText": "Соединение отклонено.",
|
||||
"controllerConnectedText": "${CONTROLLER} подключен.",
|
||||
"controllerDetectedText": "Обнаружен 1 контроллер.",
|
||||
|
|
@ -968,9 +992,9 @@
|
|||
"corruptFileText": "Обнаружены поврежденные файлы. Попытайтесь переустановить или обратитесь к ${EMAIL}",
|
||||
"errorPlayingMusicText": "Ошибка воспроизведения музыки: ${MUSIC}",
|
||||
"errorResettingAchievementsText": "Не удается сбросить онлайн-медали, пожалуйста, попробуйте позже.",
|
||||
"hasMenuControlText": "${NAME} контролирует меню",
|
||||
"hasMenuControlText": "Меню контролирует ${NAME}.",
|
||||
"incompatibleNewerVersionHostText": "Хост использует более новую версию игры.\nОбновитесь до последней версии и попробуйте снова.",
|
||||
"incompatibleVersionHostText": "Хост использует другую версию игры.\nУбедитесь, что обе ваши версии обновлены, и попытайтесь снова.",
|
||||
"incompatibleVersionHostText": "Хост использует другую версию игры.\nУбедитесь, что ваши версии совпадают, и попытайтесь снова.",
|
||||
"incompatibleVersionPlayerText": "${NAME} использует другую версию игры и не может соединится.\nУбедитесь, что обе ваши версии обновлены, и попытайтесь снова.",
|
||||
"invalidAddressErrorText": "Ошибка: неправильный адрес.",
|
||||
"invalidNameErrorText": "Ошибка: некорректное имя.",
|
||||
|
|
@ -988,28 +1012,30 @@
|
|||
"playerJoinedPartyText": "${NAME} вошел в лобби!",
|
||||
"playerLeftPartyText": "${NAME} покинул лобби.",
|
||||
"rejectingInviteAlreadyInPartyText": "Приглашение отклонено (уже в лобби).",
|
||||
"serverRestartingText": "Сервер перезагружается. Попробуйте позже...",
|
||||
"serverRestartingText": "Сервер перезагружается. Пожалуйста, перезайдите...",
|
||||
"serverShuttingDownText": "Сервер выключается...",
|
||||
"signInErrorText": "Ошибка входа.",
|
||||
"signInNoConnectionText": "Невозможно войти. (нет интернет соединения?)",
|
||||
"teamNameText": "Команда ${NAME}",
|
||||
"telnetAccessDeniedText": "ОШИБКА: пользователь не предоставил доступ Telnet.",
|
||||
"telnetAccessDeniedText": "ОШИБКА: Пользователь не предоставил доступ Telnet.",
|
||||
"timeOutText": "(осталось ${TIME} секунд)",
|
||||
"touchScreenJoinWarningText": "Вы присоединились с сенсорным экраном.\nЕсли это была ошибка, нажмите 'Меню->Покинуть игру'.",
|
||||
"touchScreenText": "Сенсорный экран",
|
||||
"trialText": "проба",
|
||||
"unableToResolveHostText": "Ошибка: невозможно достичь хоста.",
|
||||
"unableToCompleteTryAgainText": "Нельзя выполнить это сейчас.\nПожалуйста попробуйте ещё раз",
|
||||
"unableToResolveHostText": "Ошибка: невозможно определить хост.",
|
||||
"unavailableNoConnectionText": "Сейчас это недоступно (нет интернет соединения?)",
|
||||
"vrOrientationResetCardboardText": "Используйте это, чтобы сбросить ориентации VR.\nЧтобы играть в игру, вам понадобится внешний контроллер.",
|
||||
"vrOrientationResetText": "Сброс ориентации VR.",
|
||||
"willTimeOutText": "(время выйдет при бездействии)"
|
||||
},
|
||||
"inventoryText": "Инвентарь",
|
||||
"jumpBoldText": "ПРЫЖОК",
|
||||
"jumpText": "Прыгнуть",
|
||||
"jumpText": "Прыжок",
|
||||
"keepText": "Оставить",
|
||||
"keepTheseSettingsText": "Оставить эти настройки?",
|
||||
"keyboardChangeInstructionsText": "Нажмите на пробел два раза, чтобы сменить раскладку.",
|
||||
"keyboardNoOthersAvailableText": "Нету других раскладок.",
|
||||
"keyboardNoOthersAvailableText": "Отсутствуют другие раскладки.",
|
||||
"keyboardSwitchText": "Раскладка изменена на \"${NAME}\".",
|
||||
"kickOccurredText": "${NAME} исключили.",
|
||||
"kickQuestionText": "Исключить ${NAME}?",
|
||||
|
|
@ -1017,16 +1043,16 @@
|
|||
"kickVoteCantKickAdminsText": "Администраторов нельзя исключить.",
|
||||
"kickVoteCantKickSelfText": "Вы не можете исключить самого себя (но можете выйти).",
|
||||
"kickVoteFailedNotEnoughVotersText": "Недостаточно игроков для голосования.",
|
||||
"kickVoteFailedText": "Голосование на вылет не удалось.",
|
||||
"kickVoteStartedText": "Начато голосование за вылет ${NAME}.",
|
||||
"kickVoteText": "Голосовать за вылет",
|
||||
"kickVotingDisabledText": "Голосование за вылет отключено.",
|
||||
"kickVoteFailedText": "Голосование на исключение не удалось.",
|
||||
"kickVoteStartedText": "Начато голосование за исключение ${NAME}.",
|
||||
"kickVoteText": "Голосовать за исключение",
|
||||
"kickVotingDisabledText": "Голосование за исключение отключено.",
|
||||
"kickWithChatText": "Наберите ${YES} для согласия или ${NO} для отказа.",
|
||||
"killsTallyText": "Убито ${COUNT}",
|
||||
"killsText": "Убито",
|
||||
"kioskWindow": {
|
||||
"easyText": "Легкий",
|
||||
"epicModeText": "Эпический режим",
|
||||
"epicModeText": "Замедленный режим",
|
||||
"fullMenuText": "Полное меню",
|
||||
"hardText": "Трудный",
|
||||
"mediumText": "Средний",
|
||||
|
|
@ -1050,8 +1076,11 @@
|
|||
"seasonEndsMinutesText": "Сезон завершится через ${NUMBER} минут.",
|
||||
"seasonText": "Сезон ${NUMBER}",
|
||||
"tournamentLeagueText": "Чтобы участвовать в этом турнире, вы должны достичь лиги ${NAME}.",
|
||||
"trophyCountsResetText": "Трофеи будут сброшены в следующем сезоне."
|
||||
"trophyCountsResetText": "Трофеи будут сброшены в следующем сезоне.",
|
||||
"upToDateBonusDescriptionText": "Игроки, использующие последнюю версию игры\nполучают бонус ${PERCENT}% к очкам.",
|
||||
"upToDateBonusText": "Бонус за обновление"
|
||||
},
|
||||
"learnMoreText": "Подробнее",
|
||||
"levelBestScoresText": "Лучший рекорд на ${LEVEL}",
|
||||
"levelBestTimesText": "Лучшее время на ${LEVEL}",
|
||||
"levelFastestTimesText": "Лучшее время уровня ${LEVEL}",
|
||||
|
|
@ -1060,7 +1089,7 @@
|
|||
"levelMustBeCompletedFirstText": "Сначала должен быть пройден ${LEVEL}.",
|
||||
"levelText": "Уровень ${NUMBER}",
|
||||
"levelUnlockedText": "Уровень разблокирован!",
|
||||
"livesBonusText": "Бонус жизней",
|
||||
"livesBonusText": "Бонус оставшихся жизней",
|
||||
"loadingText": "Загрузка",
|
||||
"loadingTryAgainText": "Загрузка; попробуй снова через несколько секунд...",
|
||||
"macControllerSubsystemBothText": "Оба (не рекомендуется)",
|
||||
|
|
@ -1070,7 +1099,7 @@
|
|||
"macControllerSubsystemMFiText": "Сделано для iOS/Mac",
|
||||
"macControllerSubsystemTitleText": "Поддержка контроллера",
|
||||
"mainMenu": {
|
||||
"creditsText": "Благодарности",
|
||||
"creditsText": "Участвовали в создании",
|
||||
"demoMenuText": "Меню демо",
|
||||
"endGameText": "Закончить игру",
|
||||
"endTestText": "Завершить тест",
|
||||
|
|
@ -1087,21 +1116,23 @@
|
|||
"settingsText": "Настройки"
|
||||
},
|
||||
"makeItSoText": "Да будет так",
|
||||
"mapSelectGetMoreMapsText": "Ещё карт...",
|
||||
"mapSelectGetMoreMapsText": "Больше карт...",
|
||||
"mapSelectText": "Выбрать...",
|
||||
"mapSelectTitleText": "Карты игры ${GAME}",
|
||||
"mapText": "Карта",
|
||||
"maxConnectionsText": "Максимум соединений",
|
||||
"maxPartySizeText": "Размер группы",
|
||||
"maxPartySizeText": "Размер лобби",
|
||||
"maxPlayersText": "Максимум игроков",
|
||||
"merchText": "Мерч с символикой Bomb squad!",
|
||||
"merchText": "Мерч с символикой BombSquad!",
|
||||
"modeArcadeText": "Аркадный режим",
|
||||
"modeClassicText": "Обычный режим",
|
||||
"modeDemoText": "Демонстрационный режим",
|
||||
"moreSoonText": "Скоро будет больше...",
|
||||
"mostDestroyedPlayerText": "Самый побежденный игрок",
|
||||
"mostValuablePlayerText": "Самый ценный игрок",
|
||||
"mostViolatedPlayerText": "Самый побитый игрок",
|
||||
"mostViolentPlayerText": "Самый буйный игрок",
|
||||
"moveText": "Движение",
|
||||
"moveText": "Двигаться",
|
||||
"multiKillText": "${COUNT} ЗА РАЗ!!!",
|
||||
"multiPlayerCountText": "${COUNT} игроков",
|
||||
"mustInviteFriendsText": "Примечание: вы должны пригласить друзей\nна панели \"${GATHER}\" или присоединить\nконтроллеры для совместной игры.",
|
||||
|
|
@ -1110,10 +1141,11 @@
|
|||
"nameKilledText": "${NAME} убил ${VICTIM}.",
|
||||
"nameNotEmptyText": "Имя не может быть пустым!",
|
||||
"nameScoresText": "${NAME} ведет!",
|
||||
"nameSuicideKidFriendlyText": "${NAME} случайно убился.",
|
||||
"nameSuicideKidFriendlyText": "${NAME} случайно умер.",
|
||||
"nameSuicideText": "${NAME} совершил суицид.",
|
||||
"nameText": "Имя",
|
||||
"nativeText": "Разрешение устройства",
|
||||
"newExclaimText": "Новинка!",
|
||||
"newPersonalBestText": "Новый личный рекорд!",
|
||||
"newTestBuildAvailableText": "Доступна новая тестовая версия! (${VERSION} сборка ${BUILD}).\nОбновить: ${ADDRESS}",
|
||||
"newText": "Новый",
|
||||
|
|
@ -1121,33 +1153,38 @@
|
|||
"nextAchievementsText": "Следующие достижения:",
|
||||
"nextLevelText": "Следующий уровень",
|
||||
"noAchievementsRemainingText": "- нет",
|
||||
"noContinuesText": "(без продолжений)",
|
||||
"noContinuesText": "(без продолжения)",
|
||||
"noExternalStorageErrorText": "На данном устройстве не найдено внешней памяти",
|
||||
"noGameCircleText": "Ошибка: не вошли в GameCircle",
|
||||
"noJoinCoopMidwayText": "К кооперативным играм нельзя присоединиться посреди игры.",
|
||||
"noPluginsInstalledText": "Плагины не установлены",
|
||||
"noMessagesText": "Пусто.",
|
||||
"noPluginsInstalledText": "Отсутствуют установленные плагины",
|
||||
"noProfilesErrorText": "У вас нет профиля игрока, так что вас будут звать '${NAME}'.\nСоздать профиль можно перейдя в 'Настройки' > 'Профили игроков'.",
|
||||
"noScoresYetText": "Счета пока нет.",
|
||||
"noScoresYetText": "Результатов пока нет.",
|
||||
"noServersFoundText": "Серверы не найдены.",
|
||||
"noThanksText": "Нет, спасибо",
|
||||
"noTournamentsInTestBuildText": "ВНИМАНИЕ: Турнирные очки из этой тестовой сборки будут не засчитаны.",
|
||||
"noValidMapsErrorText": "Для данного типа игры не найдено корректных карт.",
|
||||
"notEnoughPlayersRemainingText": "Не осталось достаточно игроков; выйдите и начните новую игру.",
|
||||
"notEnoughPlayersText": "Для начала этой игры нужно как минимум ${COUNT} игрока!",
|
||||
"notEnoughPlayersText": "Для начала игры нужно как минимум ${COUNT} игрока(ов)!",
|
||||
"notEnoughTicketsText": "Недостаточно билетов!",
|
||||
"notNowText": "Не сейчас",
|
||||
"notSignedInErrorText": "Войдите в аккаунт для начала.",
|
||||
"notSignedInGooglePlayErrorText": "Войдите сначала в Google Play, а там посмотрим.",
|
||||
"notSignedInGooglePlayErrorText": "Для этого Вам необходимо войти с помощью Google Play.",
|
||||
"notSignedInText": "(вы не вошли)",
|
||||
"notUsingAccountText": "Рекомендация: вы не используете аккаунт ${SERVICE}.\nЗайдите в 'Аккаунт' => 'зайти в ${SERVICE}', чтобы зайти в ${SERVICE}.",
|
||||
"nothingIsSelectedErrorText": "Ничего не выбрано!",
|
||||
"numberText": "${NUMBER}",
|
||||
"offText": "Выкл",
|
||||
"okText": "Oк",
|
||||
"okText": "Ок",
|
||||
"onText": "Вкл",
|
||||
"oneMomentText": "Один момент…",
|
||||
"oneMomentText": "Минутку...",
|
||||
"onslaughtRespawnText": "${PLAYER} возродится в ${WAVE} волне",
|
||||
"openMeText": "Открой меня!",
|
||||
"openNowText": "Открыть сейчас",
|
||||
"openText": "Открыть",
|
||||
"orText": "${A} или ${B}",
|
||||
"otherText": "Другие...",
|
||||
"otherText": "Другое...",
|
||||
"outOfText": "(${RANK} из ${ALL})",
|
||||
"ownFlagAtYourBaseWarning": "Чтобы набрать очки, ваш собственный\nфлаг должен быть на вашей базе!",
|
||||
"packageModsEnabledErrorText": "Сетевая игра запрещена, когда включены моды локального пакета (см. Настройки->Дополнительно)",
|
||||
|
|
@ -1173,10 +1210,10 @@
|
|||
"playWindow": {
|
||||
"coopText": "Кооператив",
|
||||
"freeForAllText": "Каждый за себя",
|
||||
"oneToFourPlayersText": "1-4 игрока",
|
||||
"oneToFourPlayersText": "1-4 игрок(а)",
|
||||
"teamsText": "Команды",
|
||||
"titleText": "Играть",
|
||||
"twoToEightPlayersText": "2-8 игроков"
|
||||
"twoToEightPlayersText": "2-8 игрока(ов)"
|
||||
},
|
||||
"playerCountAbbreviatedText": "${COUNT}и",
|
||||
"playerDelayedJoinText": "${PLAYER} присоединится в следующем раунде.",
|
||||
|
|
@ -1191,7 +1228,7 @@
|
|||
"editButtonText": "Изменить\nпрофиль",
|
||||
"explanationText": "(настраивайте имена и внешний вид игрока)",
|
||||
"newButtonText": "Новый\nпрофиль",
|
||||
"titleText": "Профили игроков"
|
||||
"titleText": "Ваши профили"
|
||||
},
|
||||
"playerText": "Игрок",
|
||||
"playlistNoValidGamesErrorText": "Этот плейлист содержит неоткрытые игры.",
|
||||
|
|
@ -1203,8 +1240,8 @@
|
|||
"pluginClassLoadErrorText": "Ошибка при попытке загрузить класс плагина '${PLUGIN}': ${ERROR}",
|
||||
"pluginInitErrorText": "Ошибка при инициализации плагина '${PLUGIN}': ${ERROR}",
|
||||
"pluginSettingsText": "Настройки плагина",
|
||||
"pluginsAutoEnableNewText": "Автоматически включать плагины",
|
||||
"pluginsDetectedText": "Обнаружены новые плагины! Перезапустите игру, чтобы активировать их, или настройте их в настройках.",
|
||||
"pluginsAutoEnableNewText": "Автоматически включать новые плагины",
|
||||
"pluginsDetectedText": "Обнаружен(ы) новый(е) плагин(ы)! Перезапустите игру чтобы активировать, или отредактируйте в настройках.",
|
||||
"pluginsDisableAllText": "Выключить все плагины",
|
||||
"pluginsEnableAllText": "Включить все плагины",
|
||||
"pluginsRemovedText": "${NUM} плагин(ов) больше не найдены.",
|
||||
|
|
@ -1239,10 +1276,12 @@
|
|||
"punchText": "Ударить",
|
||||
"purchaseForText": "Купить за ${PRICE}",
|
||||
"purchaseGameText": "Купить игру",
|
||||
"purchaseNeverAvailableText": "Извините, покупки недоступны на вашем устройстве.\nПопробуйте зайти в ваш аккаунт с другого устройства и выполнить транзакцию с него.",
|
||||
"purchaseNotAvailableText": "Эта покупка недоступна.",
|
||||
"purchasingText": "Покупка...",
|
||||
"quitGameText": "Выйти из ${APP_NAME}?",
|
||||
"quittingIn5SecondsText": "Выход через 5 секунд...",
|
||||
"randomPlayerNamesText": "Дима, Кузя, Вован, Маха, Русский, Какуля, Бибер, Борька, Няшка, Толян, Ержан, Дибисяра, Вася, Морген, Серёга, Ваня, Кеша, Жорик, Стёпа, Эдгар, Цыган, Олег, Егор, Ёршик",
|
||||
"randomPlayerNamesText": "Каратель, Подрывник, Вован, Маха, Русский, Псих, Бибер, Борька, Няшка, Мастер, Люцифер, Взрыватель, Морген, Джинджер, Крушитель, Лавелас, Леонидас, Гангстер, Ломатель, Волк, Хитрец, Счастливчик, Везунчик, Стратег, Рустам",
|
||||
"randomText": "Случайный",
|
||||
"rankText": "Ранг",
|
||||
"ratingText": "Рейтинг",
|
||||
|
|
@ -1257,10 +1296,10 @@
|
|||
"button_position": "Положение кнопки",
|
||||
"button_size": "Размер кнопки",
|
||||
"cant_resolve_host": "Сервер не найден.",
|
||||
"capturing": "Слушаю...",
|
||||
"capturing": "Ловлю...",
|
||||
"connected": "Соединено.",
|
||||
"description": "Используйте Ваш телефон или планшет как контроллер BombSquad.\nДо 8 устройств могут быть одновременно подключены для эпических битв в мультиплеере на одном ТВ или планшете.",
|
||||
"disconnected": "Выброшен сервером.",
|
||||
"disconnected": "Отключен сервером.",
|
||||
"dpad_fixed": "неподвижный",
|
||||
"dpad_floating": "плавающий",
|
||||
"dpad_position": "Расположение D-Pad",
|
||||
|
|
@ -1281,6 +1320,7 @@
|
|||
"version_mismatch": "Несовпадение версий.\nУбедитесь, что BombSquad и контроллер BombSquad\nобновлены до последней версии и повторите попытку."
|
||||
},
|
||||
"removeInGameAdsText": "Разблокируйте \"${PRO}\" в магазине, чтобы убрать рекламу в игре.",
|
||||
"removeInGameAdsTokenPurchaseText": "ОГРАНИЧЕННОЕ ПРЕДЛОЖЕНИЕ: Купите ЛЮБОЙ пакет жетонов, чтобы убрать рекламу в игре.",
|
||||
"renameText": "Переименовать",
|
||||
"replayEndText": "Завершить просмотр записи",
|
||||
"replayNameDefaultText": "Запись последней игры",
|
||||
|
|
@ -1301,7 +1341,7 @@
|
|||
"revertText": "Восстановить",
|
||||
"runText": "Бежать",
|
||||
"saveText": "Сохранить",
|
||||
"scanScriptsErrorText": "Ошибка(и) сканирования скриптов. Загляни в логи для подробностей.",
|
||||
"scanScriptsErrorText": "Ошибка(и) сканирования скриптов. Ознакомтесь с логом для подробностей.",
|
||||
"scanScriptsMultipleModulesNeedUpdatesText": "${PATH} и ${NUM} других мод(ов) нужно обновить до ${API}",
|
||||
"scanScriptsSingleModuleNeedsUpdatesText": "${PATH} Нужно обновить до ${API}",
|
||||
"scoreChallengesText": "Медали за очки",
|
||||
|
|
@ -1331,18 +1371,20 @@
|
|||
},
|
||||
"settingsWindowAdvanced": {
|
||||
"alwaysUseInternalKeyboardDescriptionText": "(простая, удобная для контроллера виртуальная клавиатура для ввода текста)",
|
||||
"alwaysUseInternalKeyboardText": "Всегда использовать ТОЛЬКО встроенную (внутреннюю) клавиатуру. Удобно если клавиатура др. приложений лагает.",
|
||||
"alwaysUseInternalKeyboardText": "Всегда использовать ТОЛЬКО встроенную клавиатуру",
|
||||
"benchmarksText": "Тест производительности и тест-нагрузка",
|
||||
"devToolsText": "Инструменты разработчиков",
|
||||
"disableCameraGyroscopeMotionText": "Убрать тряску и движение камеры при помощи гироскопа",
|
||||
"disableCameraShakeText": "Отключить эффект трясущейся камеры.",
|
||||
"disableCameraShakeText": "Отключить тряску камеры.",
|
||||
"disableThisNotice": "(вы можете отключить это уведомление в настройках)",
|
||||
"enablePackageModsDescriptionText": "(позволяет дополнительные возможности для моддинга, но отключает сетевую игру)",
|
||||
"enablePackageModsText": "Включить моды локального пакета",
|
||||
"enterPromoCodeText": "Введите промо-код",
|
||||
"forTestingText": "Примечание: эти значения используются только для тестирования и будут потеряны, когда приложение завершит работу.",
|
||||
"helpTranslateText": "Переводы игры ${APP_NAME} с английского совершён общественными\nусилиями. Если вы хотите предложить или исправить\nперевод, следуйте по ссылке ниже. Заранее спасибо!",
|
||||
"kickIdlePlayersText": "Включите, чтобы выкидывать игроков ушедших в статус \"AFK\".",
|
||||
"helpTranslateText": "Неанглоязычные переводы ${APP_NAME} являются общественным\nусилием. Если вы хотите внести вклад или исправить\nперевод, перейдите по ссылке ниже. Заранее спасибо!",
|
||||
"insecureConnectionsDescriptionText": "не рекомендуется, но может разрешить игру \nонлайн в недоступных странах или сетях",
|
||||
"insecureConnectionsText": "Использовать незащищённые подключения",
|
||||
"kickIdlePlayersText": "Исключать бездействующих игроков",
|
||||
"kidFriendlyModeText": "Семейный режим (меньше насилия, и т.д.)",
|
||||
"languageText": "Язык",
|
||||
"moddingGuideText": "Руководство по моддингу",
|
||||
|
|
@ -1350,11 +1392,11 @@
|
|||
"mustRestartText": "Необходимо перезапустить игру, чтобы изменения вступили в силу.",
|
||||
"netTestingText": "Тестирование сети",
|
||||
"resetText": "Сбросить",
|
||||
"sendInfoText": "Отослать информацию (обратная связь с разработчиком).",
|
||||
"sendInfoText": "Отправить информацию (обратная связь с разработчиком).",
|
||||
"showBombTrajectoriesText": "Показывать траекторию бомбы",
|
||||
"showDemosWhenIdleText": "Показать Демо-Версию в режиме ожидания.",
|
||||
"showDeprecatedLoginTypesText": "Показывать устаревшие типы входа в систему",
|
||||
"showDevConsoleButtonText": "Показать кнопку консоли (для разработчика).",
|
||||
"showDevConsoleButtonText": "Показать кнопку консоли",
|
||||
"showInGamePingText": "Показать пинг (Задержку действий на сервере).",
|
||||
"showPlayerNamesText": "Показывать имена игроков",
|
||||
"showUserModsText": "Показать папку модов",
|
||||
|
|
@ -1363,7 +1405,7 @@
|
|||
"translationFetchErrorText": "статус перевода недоступен",
|
||||
"translationFetchingStatusText": "проверка статуса перевода...",
|
||||
"translationInformMe": "Сообщите мне, если мой язык нуждается в обновлениях",
|
||||
"translationNoUpdateNeededText": "Данный язык полностью обновлен, Ееее-Юху!)",
|
||||
"translationNoUpdateNeededText": "Данный язык полностью обновлен, ура!",
|
||||
"translationUpdateNeededText": "** Установленный язык требует обновлений!!!**",
|
||||
"vrTestingText": "Тестирование VR"
|
||||
},
|
||||
|
|
@ -1381,7 +1423,7 @@
|
|||
"soundtrackTypeNames": {
|
||||
"CharSelect": "Выбор персонажа",
|
||||
"Chosen One": "Избранный",
|
||||
"Epic": "Игры в эпическом режиме",
|
||||
"Epic": "Игры в замедленном режиме",
|
||||
"Epic Race": "Эпическая гонка",
|
||||
"FlagCatcher": "Захват флага",
|
||||
"Flying": "Счастливые мысли",
|
||||
|
|
@ -1402,6 +1444,7 @@
|
|||
},
|
||||
"spaceKeyText": "пробел",
|
||||
"statsText": "Статистика",
|
||||
"stopRemindingMeText": "Не напоминай мне",
|
||||
"storagePermissionAccessText": "Это требует доступа к хранилищу",
|
||||
"store": {
|
||||
"alreadyOwnText": "У вас уже есть ${NAME}!",
|
||||
|
|
@ -1435,20 +1478,20 @@
|
|||
"salePercentText": "(Скидка ${PERCENT}%)",
|
||||
"saleText": "СКИДКА",
|
||||
"searchText": "Поиск",
|
||||
"teamsFreeForAllGamesText": "Командные игры / Каждый сам за себя",
|
||||
"totalWorthText": "*** ${TOTAL_WORTH} значение! ***",
|
||||
"teamsFreeForAllGamesText": "Командные / Каждый сам за себя игры",
|
||||
"totalWorthText": "*** Общая стоимость набора - ${TOTAL_WORTH}! ***",
|
||||
"upgradeQuestionText": "Обновить?",
|
||||
"winterSpecialText": "Зимняя акция",
|
||||
"youOwnThisText": "- у вас это уже есть -"
|
||||
},
|
||||
"storeDescriptionText": "Игровое безумие с 8 игроками!\n\nВзрывайте своих друзей (или ботов) в турнире взрывных мини-игр, таких как Захват флага и Эпический смертельный бой замедленного действия!\n\nС простым управлением и расширенной поддержкой контроллеров 8 человек могут присоединиться к действию, можно даже использовать мобильные устройства как контроллеры через бесплатное приложение 'BombSquad Remote'!\n\nВ атаку!\n\nСм. www.froemling.net/BombSquad для дополнительной информации.",
|
||||
"storeDescriptionText": "Игровое безумие с 8 игроками!\n\nВзрывайте своих друзей (или ботов) в турнире взрывных мини-игр, таких как захват флага, хоккея с взрывчаткой и смертельного боя замедленного действия!\n\nС простым управлением и расширенной поддержкой контроллеров возможно присоединиться вплоть до 8 человек к игре, можно даже использовать мобильные устройства как контроллеры через бесплатное приложение 'BombSquad Remote'!\n\nВ атаку!\n\nСм. www.froemling.net/BombSquad для дополнительной информации.",
|
||||
"storeDescriptions": {
|
||||
"blowUpYourFriendsText": "Взорви друзей.",
|
||||
"competeInMiniGamesText": "Соревнуйтесь в мини-играх от гонок до левитации.",
|
||||
"competeInMiniGamesText": "Соревнуйтесь в мини-играх от гонок до полёта.",
|
||||
"customize2Text": "Настройка персонажей, мини-игр и даже саундтрека.",
|
||||
"customizeText": "Настройка персонажей и создание своих собственных плей-листов мини-игр.",
|
||||
"sportsMoreFunText": "Спорт веселее со взрывчаткой.",
|
||||
"teamUpAgainstComputerText": "Команды против компьютера."
|
||||
"sportsMoreFunText": "Спорт куда веселее со взрывчаткой.",
|
||||
"teamUpAgainstComputerText": "Объединитесь против ботов."
|
||||
},
|
||||
"storeText": "Магазин",
|
||||
"submitText": "Отправить",
|
||||
|
|
@ -1465,7 +1508,8 @@
|
|||
"testBuildValidatedText": "Тестовая сборка проверена. Наслаждайтесь!",
|
||||
"thankYouText": "Спасибо за вашу поддержку! Веселой игры!!",
|
||||
"threeKillText": "ТРЕХ ЗА РАЗ!!",
|
||||
"timeBonusText": "Бонус времени",
|
||||
"ticketsDescriptionText": "Билеты можно использовать для открытия\nперсонажей, карт, мини-игр и множество\nдругого в магазине.\n\nБилеты можно найти в сундуках, полученные в кампании и за достижения, а так же выигранные в турнирах.",
|
||||
"timeBonusText": "Бонус за время",
|
||||
"timeElapsedText": "Прошло времени",
|
||||
"timeExpiredText": "Время вышло",
|
||||
"timeSuffixDaysText": "${COUNT}д",
|
||||
|
|
@ -1474,11 +1518,25 @@
|
|||
"timeSuffixSecondsText": "${COUNT}с",
|
||||
"tipText": "Подсказка",
|
||||
"titleText": "BombSquad",
|
||||
"titleVRText": "BombSquad ВР",
|
||||
"titleVRText": "BombSquad VR",
|
||||
"tokens": {
|
||||
"getTokensText": "Получить токены",
|
||||
"notEnoughTokensText": "Недостаточно токенов!",
|
||||
"numTokensText": "${COUNT} Токенов",
|
||||
"openNowDescriptionText": "У тебя достаточно жетонов\nчтобы открыть сундук сейчас - \nтебе не нужно больше ждать.",
|
||||
"shinyNewCurrencyText": "Блестяще новая валюта в BombSquad!",
|
||||
"tokenPack1Text": "Небольшой набор токенов",
|
||||
"tokenPack2Text": "Средний набор токенов",
|
||||
"tokenPack3Text": "Огромный набор токенов",
|
||||
"tokenPack4Text": "Огромный набор токенов",
|
||||
"tokensDescriptionText": "Токены используются для ускорения открытия\nсундуков и для остальных функций игры/аккаунта.\n\nВы можете выиграть токены в игре или купить\nих в магазине. Или же купите Золотой Пропуск\nдля бесконечных токенов и не думайте о них.",
|
||||
"youHaveGoldPassText": "У вас имеется Золотой Пропуск.\nВсе покупки за токены бесплатны.\nНаслаждайтесь!"
|
||||
},
|
||||
"topFriendsText": "Топ друзей",
|
||||
"tournamentCheckingStateText": "Проверка статуса турнира, пожалуйста, подождите...",
|
||||
"tournamentEndedText": "Турнир закончился. Скоро начнется новый.",
|
||||
"tournamentEntryText": "Вход в турнир",
|
||||
"tournamentFinalStandingsText": "Финальный результат",
|
||||
"tournamentResultsRecentText": "Последние Результаты турнира",
|
||||
"tournamentStandingsText": "Позиции в турнире",
|
||||
"tournamentText": "Турнир",
|
||||
|
|
@ -1490,11 +1548,11 @@
|
|||
"Agent Johnson": "Агент Джонсон",
|
||||
"B-9000": "B-9000",
|
||||
"Bernard": "Бернард",
|
||||
"Bones": "Костяшка",
|
||||
"Bones": "Скелет",
|
||||
"Butch": "Силач",
|
||||
"Easter Bunny": "Пасхальный кролик",
|
||||
"Flopsy": "Флопси",
|
||||
"Frosty": "Снежный",
|
||||
"Frosty": "Снеговик",
|
||||
"Gretel": "Гретель",
|
||||
"Grumbledorf": "Грамблдорф",
|
||||
"Jack Morgan": "Джек Морган",
|
||||
|
|
@ -1552,15 +1610,27 @@
|
|||
"Uber Onslaught": "Убер атака",
|
||||
"Uber Runaround": "Убер побег"
|
||||
},
|
||||
"displayItemNames": {
|
||||
"${C} Tickets": "${C} Билетов",
|
||||
"${C} Tokens": "${C} Токенов",
|
||||
"Chest": "Сундук",
|
||||
"L1 Chest": "Сундук 1го уровня",
|
||||
"L2 Chest": "Сундук 2го уровня",
|
||||
"L3 Chest": "Сундук 3го уровня",
|
||||
"L4 Chest": "Сундук 4го уровня",
|
||||
"L5 Chest": "Сундук 5го уровня",
|
||||
"L6 Chest": "Сундук 6го уровня",
|
||||
"Unknown Chest": "Неизвестный сундук"
|
||||
},
|
||||
"gameDescriptions": {
|
||||
"Be the chosen one for a length of time to win.\nKill the chosen one to become it.": "Чтобы победить, стань избранным на некоторое время.\nЧтобы стать избранным, убей избранного.",
|
||||
"Bomb as many targets as you can.": "Взорвите столько мишеней, сколько сможете.",
|
||||
"Carry the flag for ${ARG1} seconds.": "Пронесите флаг в течение ${ARG1} секунд.",
|
||||
"Carry the flag for a set length of time.": "Пронесите флаг в течение заданного времени.",
|
||||
"Crush ${ARG1} of your enemies.": "Разбейте ${ARG1} врагов.",
|
||||
"Crush ${ARG1} of your enemies.": "Победите ${ARG1} врагов.",
|
||||
"Defeat all enemies.": "Победите всех врагов.",
|
||||
"Dodge the falling bombs.": "Увернитесь от падающих бомб.",
|
||||
"Final glorious epic slow motion battle to the death.": "Финальная эпическая смертельная битва в замедленном действии.",
|
||||
"Final glorious epic slow motion battle to the death.": "Финальная смертельная битва в замедленном действии.",
|
||||
"Gather eggs!": "Соберите яйца!",
|
||||
"Get the flag to the enemy end zone.": "Отнесите флаг в зону защиты противника.",
|
||||
"How fast can you defeat the ninjas?": "Как быстро вы сможете победить ниндзя?",
|
||||
|
|
@ -1636,7 +1706,8 @@
|
|||
"Arabic": "Арабский",
|
||||
"Belarussian": "Белорусский",
|
||||
"Chinese": "Китайский упрощенный",
|
||||
"ChineseTraditional": "Китайский традиционный",
|
||||
"ChineseSimplified": "Китайский - упрощённый",
|
||||
"ChineseTraditional": "Китайский - традиционный",
|
||||
"Croatian": "Хорватский",
|
||||
"Czech": "Чешский",
|
||||
"Danish": "Датский",
|
||||
|
|
@ -1657,13 +1728,18 @@
|
|||
"Korean": "Корейский",
|
||||
"Malay": "Малайский",
|
||||
"Persian": "Персидский",
|
||||
"PirateSpeak": "Пиратский язык",
|
||||
"Polish": "Польский",
|
||||
"Portuguese": "Португальский",
|
||||
"PortugueseBrazil": "Португальский - Бразилия",
|
||||
"PortuguesePortugal": "Португальский",
|
||||
"Romanian": "Румынский",
|
||||
"Russian": "Русский",
|
||||
"Serbian": "Сербский",
|
||||
"Slovak": "Словацкий",
|
||||
"Spanish": "Испанский",
|
||||
"SpanishLatinAmerica": "Испанский - Латинская Америка",
|
||||
"SpanishSpain": "Испанский",
|
||||
"Swedish": "Шведский",
|
||||
"Tamil": "Тамильский",
|
||||
"Thai": "Тайский",
|
||||
|
|
@ -1698,7 +1774,7 @@
|
|||
"Zigzag": "Зигзаг"
|
||||
},
|
||||
"playlistNames": {
|
||||
"Just Epic": "Только эпический",
|
||||
"Just Epic": "Только замедленный",
|
||||
"Just Sports": "Только спорт"
|
||||
},
|
||||
"promoCodeResponses": {
|
||||
|
|
@ -1723,14 +1799,15 @@
|
|||
"An error has occurred; please contact support. (${ERROR})": "произошла ошибка;Пожалуйста обратитесь в службу поддержки. (${ERROR})",
|
||||
"An error has occurred; please contact support@froemling.net.": "Произошла ошибка; пожалуйста, свяжитесь с support@froemling.net.",
|
||||
"An error has occurred; please try again later.": "Произошла ошибка, пожалуйста, повторите попытку позже.",
|
||||
"Are you sure you want to link these accounts?\n\n${ACCOUNT1}\n${ACCOUNT2}\n\nThis cannot be undone!": "Точно хотите связать аккаунты?\n\n${ACCOUNT1}\n${ACCOUNT2}\n\nОтменить будет нельзя!",
|
||||
"Are you sure you want to link these accounts?\n\n${ACCOUNT1}\n${ACCOUNT2}\n\nThis cannot be undone!": "Вы точно хотите связать аккаунты?\n\n${ACCOUNT1}\n${ACCOUNT2}\n\nДействие нельзя будет отменить!",
|
||||
"BombSquad Pro unlocked!": "BombSquad Pro разблокирован!",
|
||||
"Can't link 2 accounts of this type.": "Невозможно связать 2 аккаунта этого типа.",
|
||||
"Can't link 2 diamond league accounts.": "Невозможно связать 2 аккаунта бриллиантовой лиги.",
|
||||
"Can't link; would surpass maximum of ${COUNT} linked accounts.": "Невозможно связать; будет превышен максимум ${COUNT} связанных аккаунтов.",
|
||||
"Cheating detected; scores and prizes suspended for ${COUNT} days.": "Ах ты, читер; Очки и награды заморожены на ${COUNT} дней.",
|
||||
"Cheating detected; scores and prizes suspended for ${COUNT} days.": "Жульничать нехорошо! Очки и награды заморожены на ${COUNT} дней.",
|
||||
"Could not establish a secure connection.": "Не удалось установить безопасное соединение.",
|
||||
"Daily maximum reached.": "Хватит на сегодня.",
|
||||
"Daily maximum reached.": "Суточный предел достигнут.",
|
||||
"Daily sign-in reward": "Ежедневная награда за вход",
|
||||
"Entering tournament...": "Вход в турнир...",
|
||||
"Invalid code.": "Неверный код.",
|
||||
"Invalid payment; purchase canceled.": "Что-то пошло не так. Покупка отменена.",
|
||||
|
|
@ -1740,11 +1817,14 @@
|
|||
"Item unlocked!": "Предмет разблокирован!!!",
|
||||
"LINKING DENIED. ${ACCOUNT} contains\nsignificant data that would ALL BE LOST.\nYou can link in the opposite order if you'd like\n(and lose THIS account's data instead)": "СВЯЗКА ЗАПРЕЩЕНА. ${ACCOUNT} содержит \nважные данные, которые БУДУТ ПОТЕРЯНЫ.\nВы можете связать в обратном порядке\n(и потерять данные ЭТОГО аккаунта)",
|
||||
"Link account ${ACCOUNT} to this account?\nAll existing data on ${ACCOUNT} will be lost.\nThis can not be undone. Are you sure?": "Связать этот ${ACCOUNT} аккаунт с этим?\nВсе существующие данные на ${ACCOUNT} будут потеряны.\nЭто действие не может быть отменено. Вы уверены?",
|
||||
"Longer streaks lead to better rewards.": "Чем дольше дней вы заходите в игру подряд, тем лучше награды.",
|
||||
"Max number of playlists reached.": "Достигнуто максимальное количество плейлистов.",
|
||||
"Max number of profiles reached.": "Достигнуто максимальное количество профилей.",
|
||||
"Maximum friend code rewards reached.": "Достигнут лимит кодов.",
|
||||
"Message is too long.": "Сообщение слишком длинное.",
|
||||
"New tournament result!": "Новый результат турнира!",
|
||||
"No servers are available. Please try again soon.": "Нет доступных серверов. Пожалуйста попробуйте позднее.",
|
||||
"No slots available. Free a slot and try again.": "Все места заняты. Освободите место и попробуйте ещё раз.",
|
||||
"Profile \"${NAME}\" upgraded successfully.": "Профиль \"${NAME}\" обновлен успешно.",
|
||||
"Profile could not be upgraded.": "Профиль не может быть обновлен.",
|
||||
"Purchase successful!": "Успешная транзакция!",
|
||||
|
|
@ -1754,7 +1834,9 @@
|
|||
"Sorry, this code has already been used.": "Упс, этот код уже использован.",
|
||||
"Sorry, this code has expired.": "Упс, время действия кода истекло.",
|
||||
"Sorry, this code only works for new accounts.": "Упс, этот код работает только для новых аккаунтов.",
|
||||
"Sorry, this has expired.": "Упс, время истекло.",
|
||||
"Still searching for nearby servers; please try again soon.": "Ведётся поиск ближайших серверов; пожалуйста попробуйте позднее.",
|
||||
"Streak: ${NUM} days": "Промежуток: ${NUM} дней",
|
||||
"Temporarily unavailable; please try again later.": "Временно недоступно; Пожалуйста, повторите попытку позже.",
|
||||
"The tournament ended before you finished.": "Турнир закончился прежде, чем вы закончили.",
|
||||
"This account cannot be unlinked for ${NUM} days.": "Этот аккаунт невозможно отвязать в течение ${NUM} дней.",
|
||||
|
|
@ -1764,21 +1846,30 @@
|
|||
"Tournaments disabled due to rooted device.": "Турниры отключены из-за рутированного устройства.",
|
||||
"Tournaments require ${VERSION} or newer": "Для турниров требуется версия ${VERSION} или выше.",
|
||||
"Unlink ${ACCOUNT} from this account?\nAll data on ${ACCOUNT} will be reset.\n(except for achievements in some cases)": "Отвязать ${ACCOUNT} от этого аккаунта?\nВсе данные на ${ACCOUNT} будут сброшены.\n(за исключением достижений в некоторых случаях)",
|
||||
"WARNING: complaints of hacking have been issued against your account.\nAccounts found to be hacking will be banned. Please play fair.": "ПРЕДУПРЕЖДЕНИЕ: жалобы на хакерство были выданы на вашу учетную запись.\nУчетные записи, которые считаются взломанными, будут заблокированы. Пожалуйста, играйте честно.",
|
||||
"WARNING: complaints of hacking have been issued against your account.\nAccounts found to be hacking will be banned. Please play fair.": "ПРЕДУПРЕЖДЕНИЕ: на Ваш аккаунт поступили жалобы о жульничестве.\nАккаунты, использующиеся для жульничества будут заблокированы. Пожалуйста, играйте честно.",
|
||||
"Wait reduced!": "Время ожидания уменьшено!",
|
||||
"Warning: This version of the game is limited to old account data; things may appear missing or out of date.\nPlease upgrade to a newer version of the game to see your latest account data.": "Предупреждение: эта версия игры ограничена старыми данными учетной записи; некоторые данные могут отсутствовать или быть устаревшими.\nПожалуйста, обновите игру до более новой версии, чтобы увидеть последние данные учетной записи.",
|
||||
"Would you like to link your device account to this one?\n\nYour device account is ${ACCOUNT1}\nThis account is ${ACCOUNT2}\n\nThis will allow you to keep your existing progress.\nWarning: this cannot be undone!\n": "Желаете связать аккаунт устройства вот c этим?\n\nАккаунт устройства ${ACCOUNT1}\nТекущий аккаунт ${ACCOUNT2}\n\nЭто позволит сохранить ваши нынешние достижения.\nВнимание: отмена невозможна!",
|
||||
"You already own this!": "Вы это уже приобрели!",
|
||||
"You can join in ${COUNT} seconds.": "Ты можешь войти через ${COUNT} секунд",
|
||||
"You can join in ${COUNT} seconds.": "Вы можете войти через ${COUNT} секунд.",
|
||||
"You don't have enough tickets for this!": "У вас недостаточно билетов для этой покупки!",
|
||||
"You don't own that.": "У вас этого нету.",
|
||||
"You don't own that.": "У вас этого нет.",
|
||||
"You got ${COUNT} tickets!": "Вы получили ${COUNT} билетов!",
|
||||
"You got ${COUNT} tokens!": "У вас ${COUNT} токенов!",
|
||||
"You got a ${ITEM}!": "Вы получили ${ITEM}!",
|
||||
"You got a chest!": "Вы получили сундук!",
|
||||
"You got an achievement reward!": "Вы получили награду за достижение!",
|
||||
"You have been promoted to a new league; congratulations!": "Вас повысили и перевели в новую лигу; поздравляем!",
|
||||
"You lost a chest! (All your chest slots were full)": "Вы потеряли сундук! (Ваш инвентарь полон)",
|
||||
"You must update the app to view this.": "Вы должны обновить игру чтобы увидеть это.",
|
||||
"You must update to a newer version of the app to do this.": "Чтобы это сделать, вы должны обновить приложение.",
|
||||
"You must update to the newest version of the game to do this.": "Вы должны обновиться до новейшей версии игры, чтобы сделать это.",
|
||||
"You must wait a few seconds before entering a new code.": "Подождите несколько секунд, прежде чем вводить новый код.",
|
||||
"You placed #${RANK} in a tournament!": "Вы заняли #${RANK} в турнире!",
|
||||
"You ranked #${RANK} in the last tournament. Thanks for playing!": "Ваш ранг в последнем турнире: ${RANK}! Спасибо за игру!",
|
||||
"Your account was rejected. Are you signed in?": "Ваш аккаунт отклонён. Вы вошли в систему?",
|
||||
"Your copy of the game has been modified.\nPlease revert any changes and try again.": "Ваша версия игры была модифицирована.\nУберите все изменения и попробуйте снова.",
|
||||
"Your ad views are not registering. Ad options will be limited for a while.": "Ваши просмотры рекламы не регистрируются. Функция рекламы будет ограничена какое-то время.",
|
||||
"Your copy of the game has been modified.\nPlease revert any changes and try again.": "Ваша версия игры модифицирована.\nУберите все изменения (в т.ч. плагины) и попробуйте снова.",
|
||||
"Your friend code was used by ${ACCOUNT}": "Ваш код был использован ${ACCOUNT}"
|
||||
},
|
||||
"settingNames": {
|
||||
|
|
@ -1800,13 +1891,13 @@
|
|||
"Enable Impact Bombs": "Включить ударные бомбы",
|
||||
"Enable Triple Bombs": "Включить тройные бомбы",
|
||||
"Entire Team Must Finish": "Вся команда должна финишировать",
|
||||
"Epic Mode": "Эпический режим",
|
||||
"Epic Mode": "Замедленный режим",
|
||||
"Flag Idle Return Time": "Время возврата брошенного флага",
|
||||
"Flag Touch Return Time": "Время захвата флага",
|
||||
"Hold Time": "Время удержания",
|
||||
"Kills to Win Per Player": "Убийств на игрока до победы",
|
||||
"Laps": "Круги",
|
||||
"Lives Per Player": "Жизней на игрока",
|
||||
"Lives Per Player": "Кол-во жизней на игрока",
|
||||
"Long": "Долго",
|
||||
"Longer": "Дольше",
|
||||
"Mine Spawning": "Минирование",
|
||||
|
|
@ -1825,7 +1916,7 @@
|
|||
"statements": {
|
||||
"${TEAM} is disqualified because ${PLAYER} left": "${TEAM} дисквалифицирована потому что ${PLAYER} вышел",
|
||||
"Killing ${NAME} for skipping part of the track!": "Ликвидация ${NAME} за срезание трассы!",
|
||||
"Warning to ${NAME}: turbo / button-spamming knocks you out.": "Предупреждение для ${NAME}: за турбо / быстрое повторное нажатие кнопки можно вырубится."
|
||||
"Warning to ${NAME}: turbo / button-spamming knocks you out.": "Предупреждение для ${NAME}: за быстрое повторное нажатие кнопки(ок) можно уснуть."
|
||||
},
|
||||
"teamNames": {
|
||||
"Bad Guys": "Негодяи",
|
||||
|
|
@ -1890,7 +1981,7 @@
|
|||
"trophiesText": "Трофеев",
|
||||
"trophiesThisSeasonText": "Трофеи за этот Сезон",
|
||||
"tutorial": {
|
||||
"cpuBenchmarkText": "Прогон тьюториала на безумной скорости (проверяет скорость процессора)",
|
||||
"cpuBenchmarkText": "Запуск обучения на безумной скорости (проверяет скорость процессора)",
|
||||
"phrase01Text": "Привет!",
|
||||
"phrase02Text": "Добро пожаловать в ${APP_NAME}!",
|
||||
"phrase03Text": "Несколько советов по управлению персонажем:",
|
||||
|
|
@ -1920,19 +2011,20 @@
|
|||
"phrase27Text": "Не забывай эти советы, и ТОЧНО вернешься живым!",
|
||||
"phrase28Text": "...может быть...",
|
||||
"phrase29Text": "Удачи!",
|
||||
"randomName1Text": "Вася",
|
||||
"randomName2Text": "Петя",
|
||||
"randomName3Text": "Иннокентий",
|
||||
"randomName4Text": "Шурик",
|
||||
"randomName5Text": "Виталик",
|
||||
"skipConfirmText": "Пропустить тьюториал? Коснитесь или нажмите кнопку для подтверждения.",
|
||||
"randomName1Text": "Фрэд",
|
||||
"randomName2Text": "Гарри",
|
||||
"randomName3Text": "Билл",
|
||||
"randomName4Text": "Чак",
|
||||
"randomName5Text": "Фил",
|
||||
"skipConfirmText": "Пропустить обучение? Коснитесь или нажмите кнопку для подтверждения.",
|
||||
"skipVoteCountText": "${COUNT}/${TOTAL} голосов за пропуск",
|
||||
"skippingText": "пропуск обучения...",
|
||||
"toSkipPressAnythingText": "(коснитесь или нажмите что-нибудь чтобы пропустить тьюториал)"
|
||||
"toSkipPressAnythingText": "(коснитесь или нажмите что-нибудь чтобы пропустить обучение)"
|
||||
},
|
||||
"twoKillText": "ДВОИХ ЗА РАЗ!",
|
||||
"uiScaleText": "Размер UI",
|
||||
"unavailableText": "недоступно",
|
||||
"unclaimedPrizesText": "У вас есть не полученные призы!",
|
||||
"unconfiguredControllerDetectedText": "Обнаружен ненастроенный геймпад:",
|
||||
"unlockThisInTheStoreText": "Это должно быть разблокировано в магазине.",
|
||||
"unlockThisProfilesText": "Чтобы создать более ${NUM} профиль, Вам необходимо:",
|
||||
|
|
@ -1941,7 +2033,7 @@
|
|||
"unsupportedHardwareText": "К сожалению, это оборудование не поддерживается в этой сборке игры.",
|
||||
"upFirstText": "Для начала:",
|
||||
"upNextText": "Далее в игре ${COUNT}:",
|
||||
"updatingAccountText": "Обновление вашего аккаунта",
|
||||
"updatingAccountText": "Обновление вашего аккаунта...",
|
||||
"upgradeText": "Обновление",
|
||||
"upgradeToPlayText": "Разблокируйте \"${PRO}\" в магазине что-бы играть в это.",
|
||||
"useDefaultText": "Использовать стандартные",
|
||||
|
|
@ -1950,7 +2042,8 @@
|
|||
"usesExternalControllerText": "Эта игра может использовать внешний контроллер для управления.",
|
||||
"usingItunesText": "Использование музыкального приложения для саундтрека...",
|
||||
"usingItunesTurnRepeatAndShuffleOnText": "Убедитесь, что в iTunes включен случайный порядок, и повтор установлен на 'все'.",
|
||||
"v2AccountLinkingInfoText": "Чтобы обьединить старый и новый аккаунты, используйте кнопку 'Обьединить аккаунты'",
|
||||
"v2AccountLinkingInfoText": "Чтобы обьединить V2 аккаунты, используйте кнопку 'Обьединить аккаунты'",
|
||||
"v2AccountRequiredText": "Для этого требуется учетная запись V2. Обновите свою учетную запись и повторите попытку.",
|
||||
"validatingBetaText": "Валидация бета-версии...",
|
||||
"validatingTestBuildText": "Проверка тестовой сборки...",
|
||||
"viaText": "используя",
|
||||
|
|
@ -1963,7 +2056,7 @@
|
|||
"waitingForHostText": "(ожидание ${HOST} чтобы продолжить)",
|
||||
"waitingForLocalPlayersText": "ожидание локальных игроков...",
|
||||
"waitingForPlayersText": "ожидание присоединения игроков...",
|
||||
"waitingInLineText": "Подожди немного (комната заполнена)...",
|
||||
"waitingInLineText": "Подождите немного (лобби заполнено)...",
|
||||
"watchAVideoText": "Смотреть видео",
|
||||
"watchAnAdText": "Смотреть рекламу",
|
||||
"watchWindow": {
|
||||
|
|
@ -2008,7 +2101,7 @@
|
|||
"workspaceSyncErrorText": "Ошибка при попытке синхронизации ${WORKSPACE}. Посмотрите лог для информации.",
|
||||
"workspaceSyncReuseText": "Не получается синхронизировать ${WORKSPACE}. Используется прошлая синхронизация.",
|
||||
"worldScoresUnavailableText": "Мировые рекорды не доступны",
|
||||
"worldsBestScoresText": "Лучшие в мире очки",
|
||||
"worldsBestScoresText": "Лучшие в мире результаты",
|
||||
"worldsBestTimesText": "Лучшее в мире время",
|
||||
"xbox360ControllersWindow": {
|
||||
"getDriverText": "Скачать драйвер",
|
||||
|
|
@ -2020,5 +2113,6 @@
|
|||
},
|
||||
"yesAllowText": "Да, разрешить!",
|
||||
"yourBestScoresText": "Ваши лучшие очки",
|
||||
"yourBestTimesText": "Ваше лучшее время"
|
||||
"yourBestTimesText": "Ваше лучшее время",
|
||||
"yourPrizeText": "Ваш приз:"
|
||||
}
|
||||
13
dist/ba_data/data/languages/serbian.json
vendored
13
dist/ba_data/data/languages/serbian.json
vendored
|
|
@ -8,6 +8,8 @@
|
|||
"changeOncePerSeason": "Ово можеш променити само једном током сезоне.",
|
||||
"changeOncePerSeasonError": "Мораш сачекати следећу сезону да би ово опет променио (${NUM} дан/а)",
|
||||
"customName": "Сопствено име",
|
||||
"deleteAccountText": "избрисати налог",
|
||||
"googlePlayGamesAccountSwitchText": "Ако желите да користите други Гоогле налог,\nкористите апликацију Гоогле Плаи игре за пребацивање.",
|
||||
"linkAccountsEnterCodeText": "Унеси код",
|
||||
"linkAccountsGenerateCodeText": "Генериши код",
|
||||
"linkAccountsInfoText": "(подели напредак на више резличитих уређаја)",
|
||||
|
|
@ -15,6 +17,7 @@
|
|||
"linkAccountsInstructionsText": "Da povežeš dva profila, generiši kod sa jednog \nod njih i unesi kod na drugi.\nNapredak i inventar će biti spojeni.\nMožeš povezati najviše ${COUNT} profila.\n\nPAŽNJA:Samo poveži naloge koje poseduješ!\nAko povežeš naloge sa prijateljima onda\nnećeš biti u mogućnosti da igraš u isto vreme!\n\nVAŽNO:Ovo se trenutno ne može poništiti, zato budi pažljiv!",
|
||||
"linkAccountsText": "Повежи налоге",
|
||||
"linkedAccountsText": "Повезани налози:",
|
||||
"manageAccountText": "Управљајте налогом",
|
||||
"nameChangeConfirm": "Промени име налога у ${NAME}?",
|
||||
"resetProgressConfirmNoAchievementsText": "Ово ће твој кооперативни напредак и локалне \nрекорде вратити на почетак (али не и тикете).\nОво се не може поништити. Да ли си сигуран?",
|
||||
"resetProgressConfirmText": "Ово ће твој кооперативни напредак,\nдостигнућа и локалне рекорде (али не\nи тикете) вратити на почетак. Ово се\nне може поништити. Да ли си сигуран?",
|
||||
|
|
@ -23,14 +26,16 @@
|
|||
"setAccountNameDesc": "Изабери име које ће се приказивати на твом налогу.\nМожеш користити име са једног од твоји повезаних\nналога или направити ново јединствено име.",
|
||||
"signInInfoText": "Пријави се да зарађујеш тикете, такмичиш на мрежи\nи делиш напредак на више различитих уређаја.",
|
||||
"signInText": "Пријави се",
|
||||
"signInWithAnEmailAddressText": "Пријавите се помоћу адресе е-поште",
|
||||
"signInWithDeviceInfoText": "(аутоматски налог достпупан једино са овог уређаја)",
|
||||
"signInWithDeviceText": "Пријави се налогом уређаја",
|
||||
"signInWithGameCircleText": "Пријави се преко Гејм Сркла.",
|
||||
"signInWithGooglePlayText": "Пријави се преко Гугл Плеја",
|
||||
"signInWithTestAccountInfoText": "(налог за тестирање нових ствари које ће ускоро изаћи)",
|
||||
"signInWithTestAccountText": "Пријави се са тест профилом",
|
||||
"signInWithText": "Пријавите се помоћу ${SERVICE}",
|
||||
"signInWithV2InfoText": "(налог који функционише на свим платформама)",
|
||||
"signInWithV2Text": "Улогуј се помоћу Bombsquad налога",
|
||||
"signInWithV2Text": "Улогуј се помоћу ${APP_NAME} налога",
|
||||
"signOutText": "Одјави се",
|
||||
"signingInText": "Пријављивање...",
|
||||
"signingOutText": "Одјављивање...",
|
||||
|
|
@ -40,6 +45,7 @@
|
|||
"titleText": "Налог",
|
||||
"unlinkAccountsInstructionsText": "Изабери налог за раздвајање",
|
||||
"unlinkAccountsText": "Раздвоји налоге",
|
||||
"unlinkLegacyV1AccountsText": "Прекините везу са старим (V1) налозима",
|
||||
"v2LinkInstructionsText": "Искористи овај линк да направиш налог или да се улогујеш.",
|
||||
"viaAccount": "(преко налога ${NAME})",
|
||||
"youAreSignedInAsText": "Пријављен си као:"
|
||||
|
|
@ -333,9 +339,11 @@
|
|||
"getMoreGamesText": "Додај више игри...",
|
||||
"titleText": "Додај игру"
|
||||
},
|
||||
"addToFavoritesText": "Додај у фаворите",
|
||||
"allowText": "Дозволи",
|
||||
"alreadySignedInText": "Овај налог је тренутно пријављен на другом уређају;\nмолимо вас да замените налог или искључите игру на\nдругом уређају и покушате поново.",
|
||||
"apiVersionErrorText": "Не можемо учитати мод ${NAME}; он тражи верзију ${VERSION_USED}; ми користимо ${VERSION_REQUIRED}.",
|
||||
"areYouSureText": "Јесте ли сигурни?",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(\"Аутоматски\" активира само када су прикључене слушалице)",
|
||||
"headRelativeVRAudioText": "Виртуелни аудио у простору",
|
||||
|
|
@ -623,6 +631,7 @@
|
|||
"useMusicFolderText": "Фолдер са музичким фајловима"
|
||||
},
|
||||
"editText": "Измени",
|
||||
"enabledText": "Омогућено",
|
||||
"endText": "Крај",
|
||||
"enjoyText": "Уживај!",
|
||||
"epicDescriptionFilterText": "${DESCRIPTION} у епско успореној игри.",
|
||||
|
|
@ -1809,6 +1818,7 @@
|
|||
"upgradeText": "Надогради",
|
||||
"upgradeToPlayText": "Откључај \"${PRO}\" у продавници игре да играш ово.",
|
||||
"useDefaultText": "Користи подразумевано",
|
||||
"userSystemScriptsCreateText": "Креирајте корисничке системске скрипте",
|
||||
"usesExternalControllerText": "Ова игра користи спољашњи контролер за унос.",
|
||||
"usingItunesText": "Коришћење музичке апликације за листу звукова...",
|
||||
"validatingTestBuildText": "Потврђивање система за тестирање...",
|
||||
|
|
@ -1843,6 +1853,7 @@
|
|||
},
|
||||
"waveText": "Рунда",
|
||||
"wellSureText": "Наравно!",
|
||||
"whatIsThisText": "шта је ово?",
|
||||
"wiimoteLicenseWindow": {
|
||||
"titleText": "Дарвин Римоут права задржана"
|
||||
},
|
||||
|
|
|
|||
22
dist/ba_data/data/languages/slovak.json
vendored
22
dist/ba_data/data/languages/slovak.json
vendored
|
|
@ -8,6 +8,7 @@
|
|||
"changeOncePerSeason": "Toto môžete zmeniť len raz za sezónu.",
|
||||
"changeOncePerSeasonError": "Musíte počkať do ďalšej sezóny aby ste mohli toto znova zmeniť (${NUM} days)",
|
||||
"customName": "Vlastný názov",
|
||||
"deleteAccountText": "Zmazať Účet",
|
||||
"googlePlayGamesAccountSwitchText": "Ak chcete použiť iný účet Google,\nna jeho výmenu použite aplikáciu hry Google Play.",
|
||||
"linkAccountsEnterCodeText": "Vložte kód",
|
||||
"linkAccountsGenerateCodeText": "Vygenerovať kód",
|
||||
|
|
@ -26,6 +27,7 @@
|
|||
"setAccountNameDesc": "Vyberte meno, ktoré sa bude zobrazovať na vašom účte.\nMôžete použiť meno jedného zo svojich prepojených \núčtov alebo si vytvorte svoje vlastné meno.",
|
||||
"signInInfoText": "Prihláste sa, abyste zbierali tickety, dokončite online \na zdielajte postup medzi zariadeními.",
|
||||
"signInText": "Prihlasujem",
|
||||
"signInWithAnEmailAddressText": "Prihláste sa s e-mailovým účtom",
|
||||
"signInWithDeviceInfoText": "(iba automatický účet je dostupný pre toto zariadenie)",
|
||||
"signInWithDeviceText": "Prihláste sa s účtom na zariadení",
|
||||
"signInWithGameCircleText": "Prihlásiť sa s Game Circle",
|
||||
|
|
@ -34,7 +36,7 @@
|
|||
"signInWithTestAccountText": "Prihlásit sa s testovacím účtom",
|
||||
"signInWithText": "Prihlás sa s ${SERVICE}",
|
||||
"signInWithV2InfoText": "(účet, ktorý funguje na všetkých platformách)",
|
||||
"signInWithV2Text": "Prihláste sa pomocou účtu BombSquad",
|
||||
"signInWithV2Text": "Prihláste sa pomocou účtu ${APP_NAME}",
|
||||
"signOutText": "Odhlasujem",
|
||||
"signingInText": "Prihlasujem",
|
||||
"signingOutText": "Odhlasujem",
|
||||
|
|
@ -345,6 +347,8 @@
|
|||
"allowText": "Povol",
|
||||
"alreadySignedInText": "Tvoj účet je prihlásený z iného zariadenia;\nprosím prepni si účty alebo ukonči hru na\ntvojich ostatných zariadeniach a skús to znovu.",
|
||||
"apiVersionErrorText": "Nemožno načítať modul ${NAME}; používa api-verziu ${VERSION_USED}; my potrebujeme ${VERSION_REQUIRED}.",
|
||||
"applyText": "Uložiť Zmeny",
|
||||
"areYouSureText": "Ste si istý?",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(\"Automatika\" toto povolí len keď sú slúchadlá zapojené)",
|
||||
"headRelativeVRAudioText": "Head-Relative VR Audio",
|
||||
|
|
@ -366,7 +370,7 @@
|
|||
"boostText": "Pridať",
|
||||
"bsRemoteConfigureInAppText": "${REMOTE_APP_NAME} je nastavené v aplikácii",
|
||||
"buttonText": "tlačidlo",
|
||||
"canWeDebugText": "Chcel by si, aby Bombsquad automaticky nahlasovalo\nbugy, crashe, a základné informácie o použití vývojárovi?\n\nToto data neobsahuje žiadne osobné informácie a pomáha\nnechávať hru bežať hladko a bez bugov.",
|
||||
"canWeDebugText": "Chcel by si, aby ${APP_NAME}\nautomaticky nahlasovalo bugy, \ncrashe, \na základné informácie\no použití vývojárovi?",
|
||||
"cancelText": "Zrušiť",
|
||||
"cantConfigureDeviceText": "Prepáč, ${DEVICE} nie je konfigurovateľný",
|
||||
"challengeEndedText": "Táto challenge skončila.",
|
||||
|
|
@ -558,6 +562,7 @@
|
|||
"demoText": "Demo",
|
||||
"denyText": "odmietnuť",
|
||||
"deprecatedText": "Zastaralé",
|
||||
"descriptionText": "Popis",
|
||||
"desktopResText": "Desktop Res",
|
||||
"deviceAccountUpgradeText": "Upozornenie:\nSte pripojený v účte (${NAME}) typu zariarenie.\nÚčty takého typu budú odstránené v budúcej aktualizácii.\nAktualizujte to na V2 Účet keď chcete zachovať váš pokrok.",
|
||||
"difficultyEasyText": "Jednoduchá",
|
||||
|
|
@ -569,6 +574,7 @@
|
|||
"disableXInputDescriptionText": "Povolí viac ako 4 ovládače ale nemusí fungovať dobre.",
|
||||
"disableXInputText": "Zakázať XInput",
|
||||
"disabledText": "Vypnuté",
|
||||
"discardText": "Odhodiť",
|
||||
"discordFriendsText": "Chcete nájsť nových ľudí na hranie?\nPripojte sa na náš Discord a nájdite nových priateľov!",
|
||||
"discordJoinText": "Pripojiť na Diskord",
|
||||
"doneText": "Hotovo",
|
||||
|
|
@ -727,7 +733,7 @@
|
|||
"friendPromoCodeInstructionsText": "Ak ho chceš použiť, otvor ${APP_NAME} a choď do \"Settings->Advanced->Enter Code\".\nPozri bombsquadgame.com pre download linky pre všetky podporované platformy.",
|
||||
"friendPromoCodeRedeemLongText": "Môže byť uplatnený za ${COUNT} tiketov až pre ${MAX_USES} ľudí.",
|
||||
"friendPromoCodeRedeemShortText": "Môže byť uplatnený za ${COUNT} tiketov v hre.",
|
||||
"friendPromoCodeWhereToEnterText": "(v časti „Nastavenia-> Pokročilé-> Zadať kód“)",
|
||||
"friendPromoCodeWhereToEnterText": "(V časti „Nastavenia-> Pokročilé-> Poslať info\")",
|
||||
"getFriendInviteCodeText": "Zohnať Pozvánku",
|
||||
"googlePlayDescriptionText": "Pozvi Google Play hráčov do párty:",
|
||||
"googlePlayInviteText": "Pozvať",
|
||||
|
|
@ -823,6 +829,12 @@
|
|||
"youHaveShortText": "máš ${COUNT}",
|
||||
"youHaveText": "máš ${COUNT} tiketov"
|
||||
},
|
||||
"goldPass": {
|
||||
"desc1InfTokensText": "Nekonečné tokeny.",
|
||||
"desc2NoAdsText": "Žiadné reklamy.",
|
||||
"desc3ForeverText": "Navždy.",
|
||||
"goldPassText": "Zlatá Priepustka."
|
||||
},
|
||||
"googleMultiplayerDiscontinuedText": "Prepáč, Google multiplayer už viac nie je dostupný.\nSnažím sa to prehodiť čo najskôr. Dovtedy prosím\nskús inú metódu pripojenia.\n-Eric",
|
||||
"googlePlayPurchasesNotAvailableText": "Nákupy Google Play nie sú dostupné.\nAsi musíte aktualizovať svoju obchodnú aplikáciu.",
|
||||
"googlePlayServicesNotAvailableText": "Služby Google Play nie sú dostupné.\nNiektoré funkčnosti aplikácie môžu byť vypnuté.",
|
||||
|
|
@ -1064,6 +1076,7 @@
|
|||
"nameSuicideText": "${NAME} spáchal samovraždu.",
|
||||
"nameText": "Meno",
|
||||
"nativeText": "Prírodné",
|
||||
"newExclaimText": "Nové!",
|
||||
"newPersonalBestText": "Nový osobný rekord!",
|
||||
"newTestBuildAvailableText": "Novšia testovacia verzia je dostupná! (${VERSION} test ${BUILD}).\nZožeň ho na ${ADDRESS}",
|
||||
"newText": "Nový",
|
||||
|
|
@ -1074,6 +1087,7 @@
|
|||
"noContinuesText": "(žiadne pokračovania)",
|
||||
"noExternalStorageErrorText": "Žiadne úložisko sa v tomto zariadení nenašlo",
|
||||
"noGameCircleText": "Error: nie si prihlásený do GameCircle",
|
||||
"noMessagesText": "Žiadné Správy.",
|
||||
"noPluginsInstalledText": "Žiadne nainštalované doplnky",
|
||||
"noScoresYetText": "Zatiaľ žiadne skóre.",
|
||||
"noServersFoundText": "Nenašiel sa žiadny server.",
|
||||
|
|
@ -1268,7 +1282,7 @@
|
|||
},
|
||||
"settingsWindowAdvanced": {
|
||||
"alwaysUseInternalKeyboardDescriptionText": "(jednoduchá, podporujúca-ovládač na-obrazovke-klávesnica pre písanie textu)",
|
||||
"alwaysUseInternalKeyboardText": "Stále Používať Klávesnicu v Programe",
|
||||
"alwaysUseInternalKeyboardText": "Stále používať klávesnicu v programe",
|
||||
"benchmarksText": "Benchmarky & Stres-Testy",
|
||||
"disableCameraGyroscopeMotionText": "Zakázať pohyb gyroskopu fotoaparátu",
|
||||
"disableCameraShakeText": "Zakázať otrasy fotoaparátu",
|
||||
|
|
|
|||
1980
dist/ba_data/data/languages/spanishlatinamerica.json
vendored
Normal file
1980
dist/ba_data/data/languages/spanishlatinamerica.json
vendored
Normal file
File diff suppressed because it is too large
Load diff
1980
dist/ba_data/data/languages/spanishspain.json
vendored
Normal file
1980
dist/ba_data/data/languages/spanishspain.json
vendored
Normal file
File diff suppressed because it is too large
Load diff
30
dist/ba_data/data/languages/swedish.json
vendored
30
dist/ba_data/data/languages/swedish.json
vendored
|
|
@ -8,6 +8,7 @@
|
|||
"changeOncePerSeason": "Du kan enbart ändra detta en gång per säsong.",
|
||||
"changeOncePerSeasonError": "Du måste vänta tills nästa säsong för att ändra detta igen (${NUM} days)",
|
||||
"customName": "Anpassat Namn",
|
||||
"deleteAccountText": "Ta bort konto",
|
||||
"googlePlayGamesAccountSwitchText": "Om du vill använda ett annat Google-konto,\nanvänd appen Google Play Spel för att byta.",
|
||||
"linkAccountsEnterCodeText": "Skriv in kod",
|
||||
"linkAccountsGenerateCodeText": "Generera kod",
|
||||
|
|
@ -26,14 +27,16 @@
|
|||
"setAccountNameDesc": "Välj ett namn att visa för ditt konto.\nDu kan använda användarnamnet från något av dina länkade konton eller skapa ett unikt namn.",
|
||||
"signInInfoText": "Logga in för att samla värdekuponger, tävla \non-line och dela framsteg över olika enheter.",
|
||||
"signInText": "Logga In",
|
||||
"signInWithAnEmailAddressText": "Logga in med en e-postadress",
|
||||
"signInWithDeviceInfoText": "(endast ett automatiskt konto finns på denna enhet)",
|
||||
"signInWithDeviceText": "Logga in med ett enhetskonto",
|
||||
"signInWithGameCircleText": "Logga in med Spel Cirkel",
|
||||
"signInWithGooglePlayText": "Logga in med Google Play",
|
||||
"signInWithTestAccountInfoText": "(allmän konto typ; använd enhets konton för att fortsätta) ",
|
||||
"signInWithTestAccountText": "Logga in med ett testkonto",
|
||||
"signInWithText": "Logga in med ${SERVICE}",
|
||||
"signInWithV2InfoText": "(ett konto som fungerar på alla plattformar)",
|
||||
"signInWithV2Text": "Logga in med ett BombSquad-konto",
|
||||
"signInWithV2Text": "Logga in med ett ${APP_NAME} konto",
|
||||
"signOutText": "Logga Ut",
|
||||
"signingInText": "Loggar in...",
|
||||
"signingOutText": "Loggar ut...",
|
||||
|
|
@ -44,6 +47,7 @@
|
|||
"titleText": "Konto",
|
||||
"unlinkAccountsInstructionsText": "Välj ett konto att avlänka",
|
||||
"unlinkAccountsText": "Avlänka Konton",
|
||||
"unlinkLegacyV1AccountsText": "Ta bort länken till äldre konton (V1)",
|
||||
"v2LinkInstructionsText": "Använd den här länken för att skapa ett konto eller logga in.",
|
||||
"viaAccount": "(via konto ${NAME})",
|
||||
"youAreLoggedInAsText": "Du är inloggad som:",
|
||||
|
|
@ -333,13 +337,19 @@
|
|||
"achievementsRemainingText": "Prestationer som återstår:",
|
||||
"achievementsText": "Prestationer",
|
||||
"achievementsUnavailableForOldSeasonsText": "Tyvärr, prestation detaljerna är inte tillgängliga för gamla säsonger.",
|
||||
"activatedText": "${THING} aktiverad",
|
||||
"addGameWindow": {
|
||||
"getMoreGamesText": "Hämta Fler Spel...",
|
||||
"titleText": "Lägg till Spel"
|
||||
},
|
||||
"addToFavoritesText": "Lägg till i favoriter",
|
||||
"addedToFavoritesText": "Lade till '${NAME}' i Favoriter.",
|
||||
"allText": "Alla",
|
||||
"allowText": "Tillåt",
|
||||
"alreadySignedInText": "Ditt konto är redan inloggat på en annan enhet;\nvar god byt konto eller stäng spelet på dina\nandra enheter och försök igen.",
|
||||
"apiVersionErrorText": "Kan inte öppna ${NAME}; den änvänder api-version ${VERSION_USED}; det krävs dock ${VERSION_REQUIRED}.",
|
||||
"applyText": "Använda",
|
||||
"areYouSureText": "Är du säker?",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(\"Auto\" aktiverar endast detta när hörlurar är inkopplade)",
|
||||
"headRelativeVRAudioText": "Huvud-Relativt VR Audio",
|
||||
|
|
@ -364,7 +374,7 @@
|
|||
"boostText": "Höj",
|
||||
"bsRemoteConfigureInAppText": "${REMOTE_APP_NAME} är konfigurerad i appen själv.",
|
||||
"buttonText": "Knapp",
|
||||
"canWeDebugText": "Vill du att BombSquad automatiskt ska skicka bug, - och crashrapporter och grundläggande användarinfo till utvecklaren?\n\nDenna data innehåller ingen personlig information och\nhjälper till med att låta spelet flyta jämnt och felfritt.",
|
||||
"canWeDebugText": "Vill du att ${APP_NAME} ska rapportera automatiskt\nbuggar, krascher och grundläggande användningsinformation till utvecklaren?\n\nDessa uppgifter innehåller ingen personlig information och hjälper till\nSe till att spelet fungerar smidigt och utan buggar.",
|
||||
"cancelText": "Avbryt",
|
||||
"cantConfigureDeviceText": "Tyvärr, ${DEVICE} är inte konfigurerbar",
|
||||
"challengeEndedText": "Denna utmaning är avslutad.",
|
||||
|
|
@ -372,6 +382,7 @@
|
|||
"chatMutedText": "Chatt dämpad",
|
||||
"chatUnMuteText": "Avsluta chatt",
|
||||
"choosingPlayerText": "<väljer spelare>",
|
||||
"codesExplainText": "Koderna tillhandahålls av utvecklaren till:\nDiagnostisera och felsök ditt konto.",
|
||||
"completeThisLevelToProceedText": "Du måste klara\ndenna nivå för att fortsätta!",
|
||||
"completionBonusText": "Slutbonus",
|
||||
"configControllersWindow": {
|
||||
|
|
@ -455,6 +466,7 @@
|
|||
"titleText": "Konfigurera touchscreen",
|
||||
"touchControlsScaleText": "Touchkontroll skalning"
|
||||
},
|
||||
"configureDeviceInSystemSettingsText": "${DEVICE} kan konfigureras i appen Systeminställningar.",
|
||||
"configureItNowText": "Konfigurera nu?",
|
||||
"configureText": "Konfigurera",
|
||||
"connectMobileDevicesWindow": {
|
||||
|
|
@ -510,6 +522,7 @@
|
|||
"welcome2Text": "Du kan också tjäna biljetter från många av samma verksamhet .\nBiljetter kan användas för att låsa upp nya karaktärer, kartor och\nmini -spel , att delta i turneringar och mycket mer .",
|
||||
"yourPowerRankingText": "Din Spelar Rankning"
|
||||
},
|
||||
"copyConfirmText": "Kopieras till Urklipp.",
|
||||
"copyOfText": "${NAME} Kopia",
|
||||
"copyText": "Kopiera",
|
||||
"createAPlayerProfileText": "Skapa en spelarprofil?",
|
||||
|
|
@ -562,7 +575,10 @@
|
|||
"deleteText": "Radera",
|
||||
"demoText": "Demo",
|
||||
"denyText": "Neka",
|
||||
"deprecatedText": "Deprecated",
|
||||
"descriptionText": "Beskrivning",
|
||||
"desktopResText": "Skrivbordsupplösning",
|
||||
"deviceAccountUpgradeText": "Varning:\nDu är inloggad med ett enhetskonto (${NAME}).\nEnhetskonton kommer att tas bort i en framtida uppdatering.\nUppgradera till ett V2-konto om du vill behålla dina framsteg.",
|
||||
"difficultyEasyText": "Lätt",
|
||||
"difficultyHardOnlyText": "Endast Svårt Läge",
|
||||
"difficultyHardText": "Svår",
|
||||
|
|
@ -571,6 +587,9 @@
|
|||
"disableRemoteAppConnectionsText": "Inaktivera Fjärrapps-Anslutningar",
|
||||
"disableXInputDescriptionText": "Tillåter mer än 4 kontroller men kanske inte funkar så bra.",
|
||||
"disableXInputText": "Inaktivera XInput",
|
||||
"disabledText": "Handikappad",
|
||||
"discordFriendsText": "Vill du leta efter nya människor att spela med?\nGå med i vår Discord och hitta nya vänner!",
|
||||
"discordJoinText": "Gå med i Discord",
|
||||
"doneText": "Klar",
|
||||
"drawText": "Oavgjort",
|
||||
"duplicateText": "Fördubbla",
|
||||
|
|
@ -605,6 +624,7 @@
|
|||
"localProfileText": "(lokal profil)",
|
||||
"nameDescriptionText": "Spelarnamn",
|
||||
"nameText": "Namn",
|
||||
"profileAlreadyExistsText": "Det finns redan en profil med det namnet.",
|
||||
"randomText": "slumpvis",
|
||||
"titleEditText": "Redigera Profil",
|
||||
"titleNewText": "Ny Profil",
|
||||
|
|
@ -642,12 +662,15 @@
|
|||
"useMusicFolderText": "Mappnamn för Musikfiler"
|
||||
},
|
||||
"editText": "Redigera",
|
||||
"enabledText": "Aktiverad",
|
||||
"endText": "slut",
|
||||
"enjoyText": "Ha det så roligt!",
|
||||
"epicDescriptionFilterText": "${DESCRIPTION} i episk slow moition.",
|
||||
"epicNameFilterText": "Episk ${NAME}",
|
||||
"errorAccessDeniedText": "åtkomst nekad",
|
||||
"errorDeviceTimeIncorrectText": "Din enhets tid är felaktig med ${HOURS} timmar.\nDetta kommer sannolikt att orsaka problem.\nKontrollera dina tids- och tidszonsinställningar.",
|
||||
"errorOutOfDiskSpaceText": "slut på diskutrymme",
|
||||
"errorSecureConnectionFailText": "Det går inte att upprätta en säker molnanslutning; nätverksfunktionen kan misslyckas.",
|
||||
"errorText": "Fel",
|
||||
"errorUnknownText": "okänt fel",
|
||||
"exitGameText": "Avsluta ${APP_NAME}?",
|
||||
|
|
@ -687,6 +710,8 @@
|
|||
"editText": "Redigera\nSpellista",
|
||||
"gameListText": "Spellista",
|
||||
"newText": "Ny\nSpellista",
|
||||
"pointsToWinText": "Poäng för att vinna",
|
||||
"seriesLengthText": "Serie Längd",
|
||||
"showTutorialText": "Visa Handledning",
|
||||
"shuffleGameOrderText": "Blanda spel-ordning",
|
||||
"titleText": "Redigera ${TYPE} Spellistor"
|
||||
|
|
@ -1126,6 +1151,7 @@
|
|||
"purchasingText": "Köper...",
|
||||
"quitGameText": "Avsluta BombSquad?",
|
||||
"quittingIn5SecondsText": "Avslutar om 5 sekunder...",
|
||||
"randomPlayerNamesText": "Oliver, Carl, Tomten, Ikea, Vikingar",
|
||||
"randomText": "Slumpad",
|
||||
"rankText": "Rang",
|
||||
"ratingText": "Rating",
|
||||
|
|
|
|||
87
dist/ba_data/data/languages/tamil.json
vendored
87
dist/ba_data/data/languages/tamil.json
vendored
|
|
@ -6,7 +6,9 @@
|
|||
"campaignProgressText": "பிரச்சார முன்னேற்றம் [கடினமானது] : ${PROGRESS}",
|
||||
"changeOncePerSeason": "ஒரு பருவத்திற்கு ஒரு முறை மட்டுமே இதை மாற்ற முடியும்.",
|
||||
"changeOncePerSeasonError": "இதை மீண்டும் மாற்ற அடுத்த சீசன் வரை நீங்கள் காத்திருக்க வேண்டும் (${NUM} நாட்கள்)",
|
||||
"createAnAccountText": "புதிய கணக்கை உருவாக்கவும்",
|
||||
"customName": "தனிப்பயன் பெயர்",
|
||||
"deleteAccountText": "கணக்கை நீக்கவும்",
|
||||
"googlePlayGamesAccountSwitchText": "நீங்கள் வேறு Google கணக்கைப் பயன்படுத்த விரும்பினால்,\nமாறுவதற்கு Google Play கேம்ஸ் பயன்பாட்டைப் பயன்படுத்தவும்.",
|
||||
"linkAccountsEnterCodeText": "குறியீட்டை உள்ளிடவும்",
|
||||
"linkAccountsGenerateCodeText": "குறியீட்டை உருவாக்கவும்",
|
||||
|
|
@ -23,14 +25,16 @@
|
|||
"setAccountNameDesc": "உங்கள் கணக்குக்கு காட்ட வேண்டிய பெயரை தேர்வு செய்யவும். \nஉங்கள் இணைக்கப்பட்ட கணக்குகளிலிருந்து ஒரு பெயரை தேர்வு செய்யலாம் \nஅல்லது புதிய பெயரை உருவாக்கலாம்.",
|
||||
"signInInfoText": "சீட்டுகள் சேர்க்க, இணையத்தில் போட்டியிட,\nமுன்னேற்றங்களை பகிர, புகுபதிவு செய்யவும்.",
|
||||
"signInText": "புகுபதிகை",
|
||||
"signInWithAnEmailAddressText": "மின்னஞ்சல் முகவரியுடன் உள்நுழை",
|
||||
"signInWithDeviceInfoText": "(இந்த சாதனத்திலிருந்து ஒரு தானியங்கி கணக்கு மட்டுமே கிடைக்கும்)",
|
||||
"signInWithDeviceText": "சாதனக் கணக்கில் உள்நுழைக",
|
||||
"signInWithGameCircleText": "Game Circle மூலம் உள்நுழைக",
|
||||
"signInWithGooglePlayText": "Google Play உடன் உள்நுழைக",
|
||||
"signInWithTestAccountInfoText": "(மரபு கணக்கு வகை; முன்னோக்கி செல்லும் சாதனக் கணக்குகளைப் பயன்படுத்தவும்)",
|
||||
"signInWithTestAccountText": "சோதனைக் கணக்கில் உள்நுழைக",
|
||||
"signInWithText": "${SERVICE} -உடன் உள்நுழை",
|
||||
"signInWithV2InfoText": "(அனைத்து தளங்களிலும் செயல்படும் கணக்கு)",
|
||||
"signInWithV2Text": "BombSquad கணக்கில் உள்நுழையவும்",
|
||||
"signInWithV2Text": "${APP_NAME} கணக்கில் உள்நுழையவும்",
|
||||
"signOutText": "வெளியேறு",
|
||||
"signingInText": "புகுபதிகை நடைபெறுகிறது...",
|
||||
"signingOutText": "விடுபதிகை நடைபெறுகிறது...",
|
||||
|
|
@ -332,10 +336,14 @@
|
|||
"getMoreGamesText": "மேலும் விளையாட்டுகளைப் பெறுங்கள்...",
|
||||
"titleText": "விளையாட்டைச் சேர்"
|
||||
},
|
||||
"addToFavoritesText": "பிடித்தவையில் சேர்",
|
||||
"addedToFavoritesText": "பிடித்தவற்றில் '${NAME}' சேர்க்கப்பட்டது",
|
||||
"allText": "அனைத்து",
|
||||
"allowText": "அனுமதி",
|
||||
"alreadySignedInText": "உங்கள் கணக்கு மற்றொரு சாதனத்திலிருந்து உள்நுழைந்துள்ளது;\nதயவுசெய்து கணக்குகளை மாற்றவும் அல்லது விளையாட்டை மூடவும்\nபிற சாதனங்கள் மற்றும் மீண்டும் முயற்சிக்கவும்.",
|
||||
"apiVersionErrorText": "${NAME} தொகுதியை ஏற்ற முடியவில்லை; இது api-version ${VERSION_USED} ஐ குறிவைக்கிறது; எங்களுக்கு ${VERSION_REQUIRED} தேவைப்படுகிறது.",
|
||||
"applyText": "இடு",
|
||||
"areYouSureText": "நீ சொல்வது உறுதியா?",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(ஹெட்ஃபோன்கள் செருகப்படும்போது மட்டுமே \"ஆட்டோ\" இதை இயக்குகிறது)",
|
||||
"headRelativeVRAudioText": "தலை-உறவினர் VR ஆடியோ",
|
||||
|
|
@ -358,14 +366,24 @@
|
|||
"boostText": "ஊக்குவிக்கவும்",
|
||||
"bsRemoteConfigureInAppText": "${REMOTE_APP_NAME} பயன்பாட்டில் உள்ளமைக்கப்பட்டுள்ளது.",
|
||||
"buttonText": "பொத்தானை",
|
||||
"canWeDebugText": "BombSquad தானாகப் புகாரளிக்க விரும்புகிறீர்களா?\nடெவலப்பருக்கு பிழைகள், செயலிழப்புகள் மற்றும் அடிப்படை பயன்பாட்டு தகவல்?\n\nஇந்தத் தரவில் தனிப்பட்ட தகவல் இல்லை மற்றும் உதவுகிறது\nவிளையாட்டை சீராக மற்றும் பிழையில்லாமல் வைத்துக்கொள்ளுங்கள்.",
|
||||
"canWeDebugText": "${APP_NAME} தானாகப் புகாரளிக்க விரும்புகிறீர்களா?\nடெவலப்பருக்கு பிழைகள், செயலிழப்புகள் மற்றும் அடிப்படை பயன்பாட்டு தகவல்?\n\nஇந்தத் தரவில் தனிப்பட்ட தகவல் இல்லை மற்றும் உதவுகிறது\nவிளையாட்டை சீராக மற்றும் பிழையில்லாமல் வைத்துக்கொள்ளுங்கள்.",
|
||||
"cancelText": "ரத்து",
|
||||
"cantConfigureDeviceText": "மன்னிக்கவும்,${DEVICE} கட்டமைக்கப்படவில்லை.",
|
||||
"challengeEndedText": "இந்த சவால் முடிந்தது.",
|
||||
"chatMuteText": "அரட்டை முடக்கு",
|
||||
"chatMutedText": "அரட்டை முடக்கப்பட்டது",
|
||||
"chatUnMuteText": "அரட்டையை இயக்கு",
|
||||
"chests": {
|
||||
"prizeOddsText": "பரிசு முரண்பாடுகள்",
|
||||
"reduceWaitText": "காத்திருப்பைக் குறைக்கவும்",
|
||||
"slotDescriptionText": "இந்த ஸ்லாட் ஒரு மார்பை வைத்திருக்க முடியும்.\n\nபிரச்சார நிலைகளில் விளையாடுவதன் மூலம் மார்புகளை சம்பாதிக்கவும்,\nபோட்டிகளில் இடம்பெறுதல், மற்றும் நிறைவு செய்தல்\nசாதனைகள்.",
|
||||
"slotText": "மார்பு துளை ${NUM}",
|
||||
"slotsFullWarningText": "எச்சரிக்கை: உங்கள் பெட்டிகள் நிரம்பியுள்ளன.\nஇந்த விளையாட்டில் பெறும் புதிய பெட்டிகள் கிடைக்காது.",
|
||||
"unlocksInText": "திறப்பதற்கு இன்னும் இருக்க நேரம்"
|
||||
},
|
||||
"choosingPlayerText": "<பிளேயரைத் தேர்ந்தெடுப்பது>",
|
||||
"claimText": "உரிமைகோரல்",
|
||||
"codesExplainText": "கணக்குச் சிக்கல்களைக் கண்டறிந்து சரிசெய்ய\nடெவலப்பர்களால் குறியீடுகள் வழங்கப்படுகின்றன.",
|
||||
"completeThisLevelToProceedText": "தொடர நீங்கள்\n இந்த நிலையை முடிக்க வேண்டும்!",
|
||||
"completionBonusText": "நிறைவு போனஸ்",
|
||||
"configControllersWindow": {
|
||||
|
|
@ -550,6 +568,7 @@
|
|||
"demoText": "டெமோ",
|
||||
"denyText": "மறுக்க",
|
||||
"deprecatedText": "நிராகரிக்கப்பட்டது",
|
||||
"descriptionText": "விளக்கம்",
|
||||
"desktopResText": "டெஸ்க்டாப் ரெஸ்",
|
||||
"deviceAccountUpgradeText": "எச்சரிக்கை:\nசாதனக் கணக்கில் (${NAME}) உள்நுழைந்துள்ளீர்கள்.\nஎதிர்கால புதுப்பிப்பில் சாதன கணக்குகள் அகற்றப்படும்.\nஉங்கள் முன்னேற்றத்தைத் தொடர விரும்பினால், V2 கணக்கிற்கு மேம்படுத்தவும்.",
|
||||
"difficultyEasyText": "சுலபம்",
|
||||
|
|
@ -561,6 +580,9 @@
|
|||
"disableXInputDescriptionText": "4 க்கும் மேற்பட்ட கட்டுப்பாட்டாளர்களை அனுமதிக்கிறது ஆனால் வேலை செய்யாமல் போகலாம்.",
|
||||
"disableXInputText": "XInput ஐ முடக்கு",
|
||||
"disabledText": "முடக்கப்பட்ட எழுத்து",
|
||||
"discardText": "புறக்கணிடு",
|
||||
"discordFriendsText": "விளையாட புதிய நபர்களைத் தேட வேண்டுமா?\nஎங்கள் டிஸ்கார்டில் சேர்ந்து புதிய நண்பர்களைக் கண்டறியவும்!",
|
||||
"discordJoinText": "டிஸ்கார்டில் சேரவும்",
|
||||
"doneText": "முடிந்தது",
|
||||
"drawText": "டிரா",
|
||||
"duplicateText": "நகல்எடுத்தல்",
|
||||
|
|
@ -593,6 +615,7 @@
|
|||
"localProfileText": "(உள்ளூர் சுயவிவரம்)",
|
||||
"nameDescriptionText": "வீரரின் பெயர்",
|
||||
"nameText": "பெயர்",
|
||||
"profileAlreadyExistsText": "அந்தப் பெயரில் ஒரு சுயவிவரம் ஏற்கனவே உள்ளது.",
|
||||
"randomText": "சீரற்ற",
|
||||
"titleEditText": "சுயவிவரத்தைத் திருத்து",
|
||||
"titleNewText": "புதிய சுயவிவரம்",
|
||||
|
|
@ -674,6 +697,8 @@
|
|||
"duplicateText": "நகல்எடு்\nபிளேலிஸ்ட்",
|
||||
"editText": "தொகு\nபிளேலிஸ்ட்",
|
||||
"newText": "புதிய\nபிளேலிஸ்ட்",
|
||||
"pointsToWinText": "வெற்றிக்கான புள்ளிகள்",
|
||||
"seriesLengthText": "தொடர் நீளம்",
|
||||
"showTutorialText": "டுடோரியலைக் காட்டு",
|
||||
"shuffleGameOrderText": "விளையாட்டு ஆர்டரை கலக்கவும்",
|
||||
"titleText": "${TYPE} பிளேலிஸ்ட்களைத் தனிப்பயனாக்கவும்"
|
||||
|
|
@ -711,10 +736,10 @@
|
|||
"friendHasSentPromoCodeText": "${NAME} இலிருந்து ${COUNT} ${APP_NAME} டிக்கெட்டுகள்",
|
||||
"friendPromoCodeAwardText": "ஒவ்வொரு முறையும் நீங்கள் பயன்படுத்தும்போது ${COUNT} டிக்கெட்டுகளைப் பெறுவீர்கள்.",
|
||||
"friendPromoCodeExpireText": "குறியீடு ${EXPIRE_HOURS} மணிநேரத்தில் காலாவதியாகும் மற்றும் புதிய பிளேயர்களுக்கு மட்டுமே வேலை செய்யும்.",
|
||||
"friendPromoCodeInstructionsText": "இதைப் பயன்படுத்த, ${APP_NAME} ஐத் திறந்து \"அமைப்புகள்-> மேம்பட்ட-> குறியீட்டை உள்ளிடவும்\" என்பதற்குச் செல்லவும்.\nஆதரிக்கப்படும் அனைத்து தளங்களுக்கும் பதிவிறக்க இணைப்புகளுக்கு bombsquadgame.com ஐப் பார்க்கவும்.",
|
||||
"friendPromoCodeInstructionsText": "இதைப் பயன்படுத்த, ${APP_NAME} ஐத் திறந்து \"அமைப்புகள்->மேம்பட்ட->தகவல் அனுப்பு\" என்பதற்குச் செல்லவும்.\nஆதரிக்கப்படும் அனைத்து தளங்களுக்கும் பதிவிறக்க இணைப்புகளுக்கு bombsquadgame.com ஐப் பார்க்கவும்.",
|
||||
"friendPromoCodeRedeemLongText": "இதை ${MAX_USES} பேர் வரை ${COUNT} இலவச டிக்கெட்டுகளுக்கு மீட்டெடுக்கலாம்.",
|
||||
"friendPromoCodeRedeemShortText": "விளையாட்டில் ${COUNT} டிக்கெட்டுகளுக்கு அதை மீட்டெடுக்கலாம்.",
|
||||
"friendPromoCodeWhereToEnterText": "(\"அமைப்புகள்-> மேம்பட்ட-> குறியீட்டை உள்ளிடவும்\")",
|
||||
"friendPromoCodeWhereToEnterText": "(\"அமைப்புகள்->மேம்பட்ட->தகவல் அனுப்பு\")",
|
||||
"getFriendInviteCodeText": "நண்பர் அழைப்புக் குறியீட்டைப் பெறுங்கள்",
|
||||
"googlePlayDescriptionText": "உங்கள் விருந்துக்கு Google Play பிளேயர்களை அழைக்கவும்:",
|
||||
"googlePlayInviteText": "அழை",
|
||||
|
|
@ -746,6 +771,7 @@
|
|||
"manualYourLocalAddressText": "உங்கள் உள்ளூர் முகவரி:",
|
||||
"nearbyText": "அருகில்",
|
||||
"noConnectionText": "<இணைப்பு இல்லை>",
|
||||
"noPartiesAddedText": "கூட்டங்கள் சேர்க்கப்படவில்லை",
|
||||
"otherVersionsText": "(பிற பதிப்புகள்)",
|
||||
"partyCodeText": "பார்ட்டி குறியீடு",
|
||||
"partyInviteAcceptText": "ஏற்றுக்கொள்",
|
||||
|
|
@ -809,6 +835,12 @@
|
|||
"youHaveShortText": "உங்களிடம் ${COUNT} உள்ளது",
|
||||
"youHaveText": "உங்களிடம் ${COUNT} டிக்கெட்டுகள் உள்ளன"
|
||||
},
|
||||
"goldPass": {
|
||||
"desc1InfTokensText": "எல்லையற்ற டோக்கன்கள்.",
|
||||
"desc2NoAdsText": "விளம்பரங்கள் இல்லை.",
|
||||
"desc3ForeverText": "எப்போதும்.",
|
||||
"goldPassText": "தங்க நுழைவு அட்டை"
|
||||
},
|
||||
"googleMultiplayerDiscontinuedText": "மன்னிக்கவும், கூகுளின் மல்டிபிளேயர் சேவை இனி கிடைக்காது.\nநான் முடிந்தவரை விரைவாக மாற்றுவதற்கு வேலை செய்கிறேன்.\nஅதுவரை, வேறு இணைப்பு முறையை முயற்சிக்கவும்.\n-எரிக்",
|
||||
"googlePlayPurchasesNotAvailableText": "Google Play வாங்குதல்கள் கிடைக்கவில்லை.\nஉங்கள் ஸ்டோர் பயன்பாட்டைப் புதுப்பிக்க வேண்டியிருக்கலாம்.",
|
||||
"googlePlayServicesNotAvailableText": "Google Play சேவைகள் கிடைக்கவில்லை.\nசில ஆப்ஸ் செயல்பாடுகள் முடக்கப்பட்டிருக்கலாம்.",
|
||||
|
|
@ -992,6 +1024,7 @@
|
|||
"tournamentLeagueText": "இந்த போட்டியில் நுழைய நீங்கள் ${NAME} லீக்கை அடைய வேண்டும்.",
|
||||
"trophyCountsResetText": "அடுத்த சீசனில் கோப்பைகளின் எண்ணிக்கை மீட்டமைக்கப்படும்."
|
||||
},
|
||||
"learnMoreText": "மேலும் அறிக",
|
||||
"levelBestScoresText": "${LEVEL} இல் சிறந்த மதிப்பெண்கள்",
|
||||
"levelBestTimesText": "${LEVEL} இல் சிறந்த நேரங்கள்",
|
||||
"levelIsLockedText": "${LEVEL} லாக் செய்யப்பட்டது.",
|
||||
|
|
@ -1051,6 +1084,7 @@
|
|||
"nameSuicideText": "${NAME} தற்கொலை செய்து கொண்டார்.",
|
||||
"nameText": "பெயர்",
|
||||
"nativeText": "பூர்வீகம்",
|
||||
"newExclaimText": "புதியது!",
|
||||
"newPersonalBestText": "புதிய தனிப்பட்ட சிறந்த!",
|
||||
"newTestBuildAvailableText": "ஒரு புதிய சோதனை உருவாக்கம் கிடைக்கிறது! (${VERSION} உருவாக்க ${BUILD}).\n${ADDRESS} இல் பெறுங்கள்.",
|
||||
"newText": "புதிய",
|
||||
|
|
@ -1061,6 +1095,7 @@
|
|||
"noContinuesText": "(தொடரும் இல்லை)",
|
||||
"noExternalStorageErrorText": "இந்தச் சாதனத்தில் வெளிப்புறச் சேமிப்பு இல்லை",
|
||||
"noGameCircleText": "பிழை: GameCircle இல் உள்நுழையவில்லை",
|
||||
"noPluginsInstalledText": "செருகுநிரல்கள் எதுவும் நிறுவப்படவில்லை",
|
||||
"noScoresYetText": "இன்னும் மதிப்பெண்கள் இல்லை.",
|
||||
"noServersFoundText": "சேவையகங்கள் எதுவும் இல்லை.",
|
||||
"noThanksText": "இல்லை, நன்றி!",
|
||||
|
|
@ -1167,6 +1202,8 @@
|
|||
"punchText": "குத்து",
|
||||
"purchaseForText": "${PRICE} க்கு வாங்கு",
|
||||
"purchaseGameText": "வாங்கு விளையாட்டு",
|
||||
"purchaseNeverAvailableText": "மன்னிக்கவும், இந்த உருவாக்கத்தில் வாங்குதல்கள் இல்லை.\nவேறொரு தளத்தில் உங்கள் கணக்கில் உள்நுழைந்து, அங்கிருந்து வாங்கவும்.",
|
||||
"purchaseNotAvailableText": "இந்த கொள்முதல் கிடைக்கவில்லை.",
|
||||
"purchasingText": "வாங்குகிறது...",
|
||||
"quitGameText": "${APP_NAME} ஐ விட்டு வெளியேறவா?",
|
||||
"quittingIn5SecondsText": "5 வினாடிகளில் வெளியேறும்...",
|
||||
|
|
@ -1241,6 +1278,7 @@
|
|||
},
|
||||
"scoreWasText": "(${COUNT} இருந்தது)",
|
||||
"selectText": "தேர்ந்தெடு",
|
||||
"sendInfoDescriptionText": "டெவெலப்பருக்கு கணக்கு மற்றும் பயன்பாட்டு நிலைத் தகவலை அனுப்புகிறது.\nஉங்கள் பெயர் அல்லது அனுப்புவதற்கான காரணத்தைச் சேர்க்கவும்.",
|
||||
"seriesWinLine1PlayerText": "வெற்றி",
|
||||
"seriesWinLine1TeamText": "வெற்றி",
|
||||
"seriesWinLine1Text": "வெற்றி",
|
||||
|
|
@ -1258,6 +1296,7 @@
|
|||
"alwaysUseInternalKeyboardDescriptionText": "(உரை திருத்துவதற்கான ஒரு எளிய, கட்டுப்படுத்தி-நட்பு திரையில் விசைப்பலகை)",
|
||||
"alwaysUseInternalKeyboardText": "எப்போதும் உள் விசைப்பலகையைப் பயன்படுத்தவும்",
|
||||
"benchmarksText": "அளவுகோல்கள் மற்றும் மன அழுத்த சோதனைகள்",
|
||||
"devToolsText": "டெவலப்பர் கருவிகள்",
|
||||
"disableCameraGyroscopeMotionText": "கேமரா கைரோஸ்கோப் இயக்கத்தை முடக்கவும்",
|
||||
"disableCameraShakeText": "கேமரா குலுக்கை முடக்கு",
|
||||
"disableThisNotice": "(மேம்பட்ட அமைப்புகளில் இந்த அறிவிப்பை முடக்கலாம்)",
|
||||
|
|
@ -1270,12 +1309,16 @@
|
|||
"kidFriendlyModeText": "குழந்தை நட்பு முறை (குறைந்த வன்முறை போன்றவை)",
|
||||
"languageText": "மொழி",
|
||||
"moddingGuideText": "மோடிங் வழிகாட்டி",
|
||||
"moddingToolsText": "மாற்றியமைக்கும் கருவிகள்",
|
||||
"mustRestartText": "இது நடைமுறைக்கு வர நீங்கள் விளையாட்டை மறுதொடக்கம் செய்ய வேண்டும்.",
|
||||
"netTestingText": "நெட்வொர்க் சோதனை",
|
||||
"resetText": "மீட்டு",
|
||||
"sendInfoText": "தகவல் அனுப்பு",
|
||||
"showBombTrajectoriesText": "வெடிகுண்டு பாதைகளைக் காட்டு",
|
||||
"showDemosWhenIdleText": "செயலற்ற நிலையில் டெமோக்களைக் காட்டு",
|
||||
"showDeprecatedLoginTypesText": "நிராகரிக்கப்பட்ட உள்நுழைவு வகைகளைக் காட்டு",
|
||||
"showDevConsoleButtonText": "உருவாக்குபவர் பணியகத்தை காட்டு",
|
||||
"showInGamePingText": "இன்-கேம் பிங்கைக் காட்டு",
|
||||
"showInGamePingText": "பிணைய தாமதத்தைக் காட்டு",
|
||||
"showPlayerNamesText": "பிளேயர் பெயர்களைக் காட்டு",
|
||||
"showUserModsText": "மோட்ஸ் கோப்புறையைக் காட்டு",
|
||||
"titleText": "மேம்பட்ட அமைப்புகள்",
|
||||
|
|
@ -1283,8 +1326,8 @@
|
|||
"translationFetchErrorText": "மொழிபெயர்ப்பு நிலை கிடைக்கவில்லை",
|
||||
"translationFetchingStatusText": "மொழிபெயர்ப்பு நிலையை சரிபார்க்கிறது...",
|
||||
"translationInformMe": "எனது மொழிக்கு புதுப்பிப்புகள் தேவைப்படும்போது எனக்குத் தெரியப்படுத்துங்கள்",
|
||||
"translationNoUpdateNeededText": "தற்போதைய மொழி புதுப்பித்த நிலையில் உள்ளது; வூஹூ!",
|
||||
"translationUpdateNeededText": "** தற்போதைய மொழிக்கு புதுப்பிப்புகள் தேவை !! **",
|
||||
"translationNoUpdateNeededText": "தற்போதைய மொழி புதுப்பித்த நிலையில் உள்ளது; அடிதூள்!",
|
||||
"translationUpdateNeededText": "** தற்போதைய மொழிக்கு புதுப்பிப்புகள் தேவை!! **",
|
||||
"vrTestingText": "VR சோதனை"
|
||||
},
|
||||
"shareText": "பகிர்",
|
||||
|
|
@ -1294,6 +1337,9 @@
|
|||
"signInWithGameCenterText": "Game Center கணக்கைப் பயன்படுத்த,\nGame Center ஆப் மூலம் உள்நுழையவும்.",
|
||||
"singleGamePlaylistNameText": "வெறும் ${GAME}",
|
||||
"singlePlayerCountText": "1 வீரர்",
|
||||
"sizeLargeText": "பெரியது",
|
||||
"sizeMediumText": "நடுத்தரம்",
|
||||
"sizeSmallText": "சிறியது",
|
||||
"soloNameFilterText": "தனி ${NAME}",
|
||||
"soundtrackTypeNames": {
|
||||
"CharSelect": "குணம் தேர்ந்தெடுத்தல்",
|
||||
|
|
@ -1367,6 +1413,7 @@
|
|||
"submitText": "சமர்ப்பிக்கவும்",
|
||||
"submittingPromoCodeText": "குறியீட்டைச் சமர்ப்பிக்கிறது...",
|
||||
"successText": "வெற்றி!",
|
||||
"supportEmailText": "நீங்கள் ஏதேனும் சிக்கல்களை எதிர்கொண்டால் பயன்பாடு,\nதயவுசெய்து ${EMAIL} க்கு மின்னஞ்சல் செய்யவும்.",
|
||||
"teamNamesColorText": "அணியின் பெயர்கள்/நிறங்கள்...",
|
||||
"telnetAccessGrantedText": "டெல்நெட் அணுகல் இயக்கப்பட்டது.",
|
||||
"telnetAccessText": "டெல்நெட் அணுகல் கண்டறியப்பட்டது; அனுமதிக்கவா?",
|
||||
|
|
@ -1386,6 +1433,17 @@
|
|||
"tipText": "உதவிக்குறிப்பு",
|
||||
"titleText": "பாம்ஸ்குவாட்",
|
||||
"titleVRText": "பாம்ஸ்குவாட் VR",
|
||||
"tokens": {
|
||||
"getTokensText": "டோக்கன்களைப் பெறுங்கள்",
|
||||
"notEnoughTokensText": "போதுமான டோக்கன்கள் இல்லை!",
|
||||
"numTokensText": "${COUNT} டோக்கன்கள்",
|
||||
"shinyNewCurrencyText": "BombSquad இன் பளபளப்பான புதிய நாணயம்.",
|
||||
"tokenPack1Text": "சிறிய டோக்கன் பேக்",
|
||||
"tokenPack2Text": "நடுத்தர டோக்கன் பேக்",
|
||||
"tokenPack3Text": "பெரிய டோக்கன் பேக்",
|
||||
"tokenPack4Text": "மிகப்பெரிய டோக்கன் பேக்",
|
||||
"youHaveGoldPassText": "உங்களிடம் தங்க நுழைவு அட்டை உள்ளது.\nஅனைத்து டோக்கன் வாங்குதல்களும் இலவசம்.\nமகிழுங்கள்!"
|
||||
},
|
||||
"topFriendsText": "சிறந்த நண்பர்கள்",
|
||||
"tournamentCheckingStateText": "போட்டி நிலையை சரிபார்க்கிறது; தயவுசெய்து காத்திருங்கள்...",
|
||||
"tournamentEndedText": "இந்த போட்டி முடிந்தது. புதியது விரைவில் தொடங்கும்.",
|
||||
|
|
@ -1550,12 +1608,12 @@
|
|||
"Malay": "மலாய்",
|
||||
"Persian": "பர்ஷியன்",
|
||||
"Polish": "பலிஷ்",
|
||||
"Portuguese": "போர்சுகிஸ்",
|
||||
"Portuguese": "போர்சுகிஸ் ",
|
||||
"Romanian": "ரோமானியன்",
|
||||
"Russian": "ரஷ்யன்",
|
||||
"Serbian": "சர்பியன்",
|
||||
"Slovak": "ஸ்லோவக்",
|
||||
"Spanish": "ஸ்பானிஷ்",
|
||||
"Spanish": "ஸ்பானிஷ் ",
|
||||
"Swedish": "ஸ்வீடிஷ்",
|
||||
"Tamil": "தமிழ்",
|
||||
"Thai": "தாய்",
|
||||
|
|
@ -1661,7 +1719,10 @@
|
|||
"You don't own that.": "உங்களுக்கு அது சொந்தமில்லை.",
|
||||
"You got ${COUNT} tickets!": "நீங்கள் ${COUNT} டிக்கெட்டுகளைப் பெற்றுள்ளீர்கள்!",
|
||||
"You got a ${ITEM}!": "உங்களுக்கு ${ITEM} கிடைத்துள்ளது!",
|
||||
"You got an achievement reward!": "நீங்கள் ஒரு சாதனை பரிசு பெற்றுள்ளீர்கள்!",
|
||||
"You have been promoted to a new league; congratulations!": "நீங்கள் ஒரு புதிய லீக்கில் பதவி உயர்வு பெற்றுள்ளீர்கள்; வாழ்த்துக்கள்!",
|
||||
"You lost a chest! (All your chest slots were full)": "நீங்கள் ஒரு பெட்டியை இழந்துவிட்டீர்கள்! (உங்கள் அனைத்து பெட்டி இடங்களும் நிரம்பியிருந்தன)",
|
||||
"You must update the app to view this.": "நீங்கள் இதைப் பார்ப்பதற்கு செயலியை புதுப்பிக்க வேண்டும்.",
|
||||
"You must update to a newer version of the app to do this.": "இதைச் செய்ய நீங்கள் பயன்பாட்டின் புதிய பதிப்பைப் புதுப்பிக்க வேண்டும்.",
|
||||
"You must update to the newest version of the game to do this.": "இதைச் செய்ய நீங்கள் விளையாட்டின் புதிய பதிப்பைப் புதுப்பிக்க வேண்டும்.",
|
||||
"You must wait a few seconds before entering a new code.": "புதிய குறியீட்டை உள்ளிடுவதற்கு சில வினாடிகள் காத்திருக்க வேண்டும்.",
|
||||
|
|
@ -1815,6 +1876,7 @@
|
|||
"toSkipPressAnythingText": "(பயிற்சியைத் தவிர்க்க எதையும் தட்டவும் அல்லது அழுத்தவும்)"
|
||||
},
|
||||
"twoKillText": "இரட்டை கொலை!",
|
||||
"uiScaleText": "பயனர் இடைமுக அளவு",
|
||||
"unavailableText": "கிடைக்கவில்லை",
|
||||
"unconfiguredControllerDetectedText": "கட்டமைக்கப்படாத கட்டுப்படுத்தி கண்டறியப்பட்டது:",
|
||||
"unlockThisInTheStoreText": "இதை ஸ்டோரில் திறக்க வேண்டும்.",
|
||||
|
|
@ -1828,10 +1890,14 @@
|
|||
"upgradeText": "மேம்படுத்தல்",
|
||||
"upgradeToPlayText": "இதை விளையாட கேம் ஸ்டோரில் \"${PRO}\" ஐத் திறக்கவும்.",
|
||||
"useDefaultText": "இயல்புநிலையைப் பயன்படுத்தவும்",
|
||||
"userSystemScriptsCreateText": "பயனர் கணினி ஸ்கிரிப்ட்களை உருவாக்கவும்",
|
||||
"userSystemScriptsDeleteText": "பயனர் கணினி ஸ்கிரிப்ட்களை நீக்கவும்",
|
||||
"usesExternalControllerText": "இந்த விளையாட்டு உள்ளீட்டிற்கு வெளிப்புற கட்டுப்படுத்தியைப் பயன்படுத்துகிறது.",
|
||||
"usingItunesText": "ஒலிப்பதிவுக்காக மியூசிக் ஆப் பயன்படுத்துகிறது...",
|
||||
"v2AccountLinkingInfoText": "V2 கணக்குகளை இணைக்க, 'கணக்கை நிர்வகி' பட்டனைப் பயன்படுத்தவும்.",
|
||||
"v2AccountRequiredText": "இதற்கு V2 கணக்கு தேவை. உங்கள் கணக்கை மேம்படுத்தி மீண்டும் முயற்சிக்கவும்.",
|
||||
"validatingTestBuildText": "சோதனை கட்டத்தை சரிபார்க்கிறது...",
|
||||
"viaText": "வழியாக",
|
||||
"victoryText": "வெற்றி!",
|
||||
"voteDelayText": "நீங்கள் மற்றொரு வாக்கை ${NUMBER} வினாடிகளுக்குத் தொடங்க முடியாது",
|
||||
"voteInProgressText": "வாக்கெடுப்பு ஏற்கனவே நடந்து கொண்டிருக்கிறது.",
|
||||
|
|
@ -1896,5 +1962,6 @@
|
|||
},
|
||||
"yesAllowText": "ஆம், அனுமதி!",
|
||||
"yourBestScoresText": "உங்கள் சிறந்த மதிப்பெண்கள்",
|
||||
"yourBestTimesText": "உங்கள் சிறந்த நேரங்கள்"
|
||||
"yourBestTimesText": "உங்கள் சிறந்த நேரங்கள்",
|
||||
"yourPrizeText": "உங்கள் பரிசு:"
|
||||
}
|
||||
183
dist/ba_data/data/languages/thai.json
vendored
183
dist/ba_data/data/languages/thai.json
vendored
|
|
@ -1,12 +1,14 @@
|
|||
{
|
||||
"accountSettingsWindow": {
|
||||
"accountNameRules": "ชื่อบัญชีต้องไม่มีอิโมจิหรือตัวอักษรพิเศษอื่นๆ",
|
||||
"accountsText": "บัญชี",
|
||||
"accountsText": "บัญชีผู้ใช้",
|
||||
"achievementProgressText": "ผ่านความสำเร็จ: ${COUNT} จาก ${TOTAL}",
|
||||
"campaignProgressText": "ความคืบหน้าในภารกิจ [ยาก]: ${PROGRESS}",
|
||||
"changeOncePerSeason": "คุณสามารถเปลี่ยนได้เพียงครั้งเดียวต่อฤดูกาล",
|
||||
"changeOncePerSeasonError": "คุณต้องรอจนกว่าฤดูกาลหน้าจะเปลี่ยนอีก (${NUM} days)",
|
||||
"changeOncePerSeasonError": "คุณต้องรอจนกว่าฤดูกาลหน้าจะเปลี่ยนอีก (${NUM} วัน)",
|
||||
"createAnAccountText": "สร้างบัญชี",
|
||||
"customName": "ชื่อที่กำหนดเอง",
|
||||
"deleteAccountText": "ลบบัญชีผู้ใช้",
|
||||
"googlePlayGamesAccountSwitchText": "หากคุณต้องการใช้บัญชี Google อื่น\nใช้แอป Google Play Games เพื่อเปลี่ยน",
|
||||
"linkAccountsEnterCodeText": "ใส่รหัส",
|
||||
"linkAccountsGenerateCodeText": "สร้างรหัส",
|
||||
|
|
@ -14,7 +16,7 @@
|
|||
"linkAccountsInstructionsNewText": "หากต้องการเชื่อมโยงสองบัญชี ให้สร้างรหัสในบัญชีแรก\nและป้อนรหัสนั้นในบัญชีที่สอง ข้อมูลจาก\nบัญชีที่สองจะถูกแชร์ระหว่างทั้งสอง\n(ข้อมูลจากบัญชีแรกจะหายไป)\n\nคุณสามารถเชื่อมโยงได้ถึง ${COUNT} บัญชี\n\nข้อสำคัญ: เชื่อมโยงบัญชีที่คุณเป็นเจ้าของเท่านั้น\nหากคุณเชื่อมโยงกับบัญชีของเพื่อน คุณจะไม่ทำ\nสามารถเล่นออนไลน์ได้ในเวลาเดียวกัน",
|
||||
"linkAccountsInstructionsText": "เพื่อที่จะผูกทั้งสองบัญชีเข้าด้วยกัน จะต้องสร้างรหัสรหัสหนึ่ง\nแล้วจะต้องใส่รหัสในบัญที่คุณต้องการจะเชื่อมโยงเข้าด้วยกัน\nความคืบหน้าและสิ่งของในคลังของทั้งสองบัญชีจะถูกรวมกัน\nคุณสามารถเชื่อมโยงได้ทั้งหมด ${COUNT} บัญชี\n\nระวัง! หลังจากผูกบัญชีแล้วจะไม่สามารถยกเลิกได้!",
|
||||
"linkAccountsText": "ผูกบัญชี",
|
||||
"linkedAccountsText": "บัญชีที่เชื่อมโยงแล้ว",
|
||||
"linkedAccountsText": "บัญชีที่เชื่อมโยงแล้ว:",
|
||||
"manageAccountText": "จัดการบัญชี",
|
||||
"nameChangeConfirm": "คุณต้องการเปลี่ยนชื่อบัญชีของคุณเป็น ${NAME} หรือไม่",
|
||||
"resetProgressConfirmNoAchievementsText": "การทำสิ่งนี้จะรีเซ็ตความคืบหน้าต่างๆ ในโหมด co-op\nและคะแนนดีที่สุดในอุปกรณ์นี้ (แต่จะไม่รีเซ็ตตั๋วของคุณ) \nการทำสิ่งนี้ไม่สามารถยกเลิกได้! คุณแน่ใจหรือไม่?",
|
||||
|
|
@ -23,20 +25,21 @@
|
|||
"setAccountName": "ตั้งชื่อบัญชี",
|
||||
"setAccountNameDesc": "เลือกชื่อที่จะแสดงสำหรับบัญชีของคุณ\nคุณสามารถใช้ชื่อจากหนึ่งในบัญชีที่เชื่อมโยงของคุณ\nหรือสร้างชื่อที่กำหนดเองที่ไม่ซ้ำใคร",
|
||||
"signInInfoText": "เข้าสู่ระบบเพื่อเก็บตั๋วในการเล่นแบบออนไลน์,\nและแบ่งปันความคืบหน้าของคุณกับอุปกรณ์อื่นๆ",
|
||||
"signInText": "ลงชื่อเข้าใช้",
|
||||
"signInText": "เข้าสู่ระบบ",
|
||||
"signInWithAnEmailAddressText": "เข้าสู่ระบบด้วยที่อยู่อีเมล",
|
||||
"signInWithDeviceInfoText": "(บัญชีอัตโนมัติที่ใช้ได้เฉพาะในอุปกรณ์นี้)",
|
||||
"signInWithDeviceText": "เข้าสู่ระบบจากอุปกรณ์นี้",
|
||||
"signInWithDeviceText": "เข้าสู่ระบบด้วยอุปกรณ์นี้",
|
||||
"signInWithGameCircleText": "เข้าสู่ระบบด้วยบัญชี Game Circle",
|
||||
"signInWithGooglePlayText": "ลงชื่อเข้าใช้ด้วยบัญชี Google Play",
|
||||
"signInWithTestAccountInfoText": "(บัญชีทดลอง;เลือกตัวเลือกนี้เพื่อไปต่อ)",
|
||||
"signInWithTestAccountText": "ลงชื่อเข้าใช้เพื่อทดลอง",
|
||||
"signInWithText": "เข้าสู่ระบบด้วย ${SERVICE}",
|
||||
"signInWithV2InfoText": "(บัญชีที่ใช้งานได้กับทุกแพลตฟอร์ม)",
|
||||
"signInWithV2Text": "ลงชื่อเข้าใช้ด้วยบัญชี BombSquad",
|
||||
"signInWithV2Text": "เข้าสู่ระบบด้วยบัญชี ${APP_NAME}",
|
||||
"signOutText": "ออกจากระบบ",
|
||||
"signingInText": "กำลังลงชื่อเข้าใช้...",
|
||||
"signingInText": "กำลังเข้าสู่ระบบ...",
|
||||
"signingOutText": "กำลังออกจากระบบ...",
|
||||
"ticketsText": "ตั๋ว: ${COUNT}",
|
||||
"ticketsText": "ตั๋ว: ${COUNT} ใบ",
|
||||
"titleText": "บัญชี",
|
||||
"unlinkAccountsInstructionsText": "เลือกบัญชีที่จะยกเลิกการเชื่อมโยง",
|
||||
"unlinkAccountsText": "ยกเลิกการเชื่อมโยงบัญชี",
|
||||
|
|
@ -51,8 +54,8 @@
|
|||
"Boom Goes the Dynamite": {
|
||||
"description": "ฆ่าศัตรู 3 คนด้วย TNT",
|
||||
"descriptionComplete": "ฆ่าศัตรู 3 คนด้วย TNT แล้ว",
|
||||
"descriptionFull": "ฆ่าศัตรู ${LEVEL} 3 คนด้วย TNT",
|
||||
"descriptionFullComplete": "ฆ่าศัตรู 3 คน ด้วย TNT ใน ${LEVEL}",
|
||||
"descriptionFull": "ฆ่าศัตรู 3 คนด้วย TNT ใน ${LEVEL}",
|
||||
"descriptionFullComplete": "ฆ่าศัตรู 3 คน ด้วย TNT ใน ${LEVEL} แล้ว",
|
||||
"name": "ระเบิดดังสนั่นหวั่นไหวจากไดนาไมต์"
|
||||
},
|
||||
"Boxer": {
|
||||
|
|
@ -91,7 +94,7 @@
|
|||
"descriptionComplete": "ชนะโดยไม่ต้องใช้หมัดหรือระเบิดแล้ว",
|
||||
"descriptionFull": "ชนะ ${LEVEL} โดยไม่ต้องใช้หมัดหรือระเบิด",
|
||||
"descriptionFullComplete": "ชนะ ${LEVEL} โดยไม่ต้องใช้หมัดหรือระเบิดแล้ว",
|
||||
"name": "เร่งรีบ"
|
||||
"name": "พริ้วไหวดั่งสายลม"
|
||||
},
|
||||
"In Control": {
|
||||
"descriptionFull": "เชื่อมต่อกับคอนโทรลเลอร์",
|
||||
|
|
@ -117,7 +120,7 @@
|
|||
"descriptionComplete": "ทำคะแนน 500 คะแนนแล้ว",
|
||||
"descriptionFull": "ทำคะแนน 500 คะแนนใน ${LEVEL}",
|
||||
"descriptionFullComplete": "ทำคะแนน 500 คะแนนใน ${LEVEL} แล้ว",
|
||||
"name": "ผู้วิเศษ ${LEVEL}"
|
||||
"name": "พ่อมด ${LEVEL}"
|
||||
},
|
||||
"Mine Games": {
|
||||
"description": "ฆ่าศัตรู 3 คนด้วยกับระเบิด",
|
||||
|
|
@ -338,15 +341,17 @@
|
|||
"addedToFavoritesText": "เพื่ม '${NAME}' ในรายการโปรดแล้ว",
|
||||
"allText": "ทั้งหมด",
|
||||
"allowText": "ยอมรับ",
|
||||
"alreadySignedInText": "บัญชีของคุณลงชื่อเข้าใช้จากอุปกรณ์อื่น\nโปรดเปลี่ยนบัญชีหรือปิดเกมของคุณ\nอุปกรณ์อื่นและลองอีกครั้ง",
|
||||
"alreadySignedInText": "บัญชีของคุณลงชื่อเข้าใช้จากอุปกรณ์อื่น;\nโปรดเปลี่ยนบัญชีหรือปิดเกมบนอุปกรณ์อื่น\nของคุณและลองอีกครั้ง",
|
||||
"apiVersionErrorText": "ไม่สามารถโหลดโมดูล ${NAME} ได้; มันอยู่ในเวอร์ชั่น api ${VERSION_USED}; แต่เราต้องการเวอร์ชั่น ${VERSION_REQUIRED}",
|
||||
"applyText": "นำมาใช้ในเกม",
|
||||
"areYouSureText": "คุณแน่ใจใช่มั้ย?",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(\"อัติโนมัติ\" เปิดสิ่งนี้เฉพาะตอนที่เสียบหูฟังอยู่เท่านั้น)",
|
||||
"headRelativeVRAudioText": "ระดับเสียงเครื่องสวมหัว VR",
|
||||
"musicVolumeText": "ระดับเสียงเพลง",
|
||||
"soundVolumeText": "ระดับเสียงประกอบ",
|
||||
"soundtrackButtonText": "เพลงประกอบ",
|
||||
"soundtrackDescriptionText": "(นำเพลงของคุณเองมาใช้ในการเล่นเกม)",
|
||||
"soundtrackDescriptionText": "(นำเพลงของคุณเองมาใช้เล่นในเกม)",
|
||||
"titleText": "การตั้งค่าเสียง"
|
||||
},
|
||||
"autoText": "อัติโนมัติ",
|
||||
|
|
@ -361,14 +366,23 @@
|
|||
"boostText": "บูสท์",
|
||||
"bsRemoteConfigureInAppText": "${REMOTE_APP_NAME} กำลังค่าในตัวแอพเอง",
|
||||
"buttonText": "ปุ่ม",
|
||||
"canWeDebugText": "คุณอยากให้ BombSquad แจ้งข้อผิดพลาด ปัญหา\nและข้อมูลการใช้งานทั่วไปกับผู้สร้างโดยอัติโนมัติหรือไม่?\n\nข้อมูลนี้จะไม่เกี่ยวข้องกับข้อมูลส่วนตัวและจะช่วยให้\nสามารถเล่นเกมได้อย่างราบรื่นและไม่มีข้อผิดพลาด",
|
||||
"canWeDebugText": "คุณต้องการให้ ${APP_NAME} รายงานข้อบกพร่อง ข้อขัดข้อง และข้อมูลการใช้งานพื้นฐานไปยังผู้พัฒนาโดยอัตโนมัติหรือไม่\n\nข้อมูลนี้ไม่มีข้อมูลส่วนบุคคลและช่วยให้เกมทำงานได้อย่างราบรื่นและไม่มีข้อบกพร่อง",
|
||||
"cancelText": "ยกเลิก",
|
||||
"cantConfigureDeviceText": "ขออภัย, ${DEVICE} ไม่สามารถตั้งค่าได้",
|
||||
"challengeEndedText": "การท้าทายนี้ได้จบลงแล้ว",
|
||||
"chatMuteText": "ปิดเสียงแชท",
|
||||
"chatMutedText": "ปิดเสียงการแชท",
|
||||
"chatUnMuteText": "ยกเลิกการปิดเสียงแขท",
|
||||
"chests": {
|
||||
"prizeOddsText": "อัตราการได้รางวัล",
|
||||
"reduceWaitText": "ลดเวลารอ",
|
||||
"slotDescriptionText": "ช่องนี้ใช้สำหรับใส่หีบ\n\nรับหีบได้จากการเล่นด่านต่างๆ ในด่านแคมเปญ,\nการเข้าร่วมการแข่งขันและการทำความสำเร็จ\nให้สำเร็จ",
|
||||
"slotText": "ช่องเก็บหีบที่ ${NUM}",
|
||||
"slotsFullWarningText": "คำเตือน: ช่องเก็บหีบของคุณเต็มหมดแล้ว\nหีบใดๆ ที่คุณได้รับจากเกมนี้จะหายไป"
|
||||
},
|
||||
"choosingPlayerText": "<กำลังเลือกผู้เล่น>",
|
||||
"claimText": "รับ",
|
||||
"codesExplainText": "นักพัฒนาซอฟต์แวร์มอบรหัสเพื่อ\nวินิจฉัยและแก้ไขปัญหาบัญชี",
|
||||
"completeThisLevelToProceedText": "คุณต้องผ่านด่านนี้\nก่อนจึงจะไปต่อได้!",
|
||||
"completionBonusText": "รางวัลการผ่านด่าน",
|
||||
"configControllersWindow": {
|
||||
|
|
@ -427,7 +441,7 @@
|
|||
"twoInOneSetupText": "การตั้งค่าคอนโทรลเลอร์แบบ 2 ใน 1",
|
||||
"uiOnlyDescriptionText": "(ป้องกันคอนโทรลเลอร์ตัวนี้ไม่ให้ใช้เข้าร่วมเกม)",
|
||||
"uiOnlyText": "จำกัดในการใช้เมนู",
|
||||
"unassignedButtonsRunText": "วิ่งปุ่มที่ไม่ได้ตั้งทั้งหมด",
|
||||
"unassignedButtonsRunText": "ใช้ปุ่มที่ไม่ได้กำหนดทั้งหมดในการวิ่ง",
|
||||
"unsetText": "<ไม่ได้ตั้ง>",
|
||||
"vrReorientButtonText": "ปรับทิศทางปุ่ม VR"
|
||||
},
|
||||
|
|
@ -552,6 +566,7 @@
|
|||
"demoText": "ทดลอง",
|
||||
"denyText": "ยกเลิก",
|
||||
"deprecatedText": "ไม่ถูกใช้งาน",
|
||||
"descriptionText": "คำอธิบายเกม",
|
||||
"desktopResText": "เดสก์ท็อป Res",
|
||||
"deviceAccountUpgradeText": "คำเตือน:\nคุณลงชื่อเข้าใช้ด้วยบัญชีอุปกรณ์ (${NAME})\nบัญชีอุปกรณ์จะถูกลบออกในการอัปเดตในอนาคต\nอัปเกรดเป็นบัญชี V2 หากคุณต้องการติดตามความคืบหน้า",
|
||||
"difficultyEasyText": "ง่าย",
|
||||
|
|
@ -563,6 +578,7 @@
|
|||
"disableXInputDescriptionText": "อนุญาตให้ใช้คอนโทรลเลอร์มากกว่า 4 ตัวแต่จะทำงานได้ไม่ค่อยดีเท่าไหร่",
|
||||
"disableXInputText": "ปิด XInput",
|
||||
"disabledText": "ปิด",
|
||||
"discardText": "ทิ้ง",
|
||||
"discordFriendsText": "ต้องการหาเพื่อนที่จะเล่นด้วยใช่ไหม\nเข้า Discord ของพวกเราและหาเพื่อนใหม่ๆ!",
|
||||
"discordJoinText": "เข้าร่วม Discord",
|
||||
"doneText": "เสร็จสิ้น",
|
||||
|
|
@ -597,6 +613,7 @@
|
|||
"localProfileText": "(โปรไฟล์ส่วนตัว)",
|
||||
"nameDescriptionText": "ชื่อผู้เล่น",
|
||||
"nameText": "ชื่อ",
|
||||
"profileAlreadyExistsText": "โปรไฟล์นี้ไม่สามารถใช้ชื่อนี้ได้",
|
||||
"randomText": "สุ่มชื่อ",
|
||||
"titleEditText": "แก้ไขโปรไฟล์",
|
||||
"titleNewText": "สร้างโปรไฟล์ใหม่",
|
||||
|
|
@ -636,7 +653,7 @@
|
|||
"endText": "จบ",
|
||||
"enjoyText": "ขอให้สนุก!",
|
||||
"epicDescriptionFilterText": "${DESCRIPTION} ในการเคลื่อนไหวที่ช้ามากๆ",
|
||||
"epicNameFilterText": "${NAME} แบบช้ามหากาฬ",
|
||||
"epicNameFilterText": "มหากาพย์ ${NAME}",
|
||||
"errorAccessDeniedText": "การเข้าถึงถูกปฏิเสธ",
|
||||
"errorDeviceTimeIncorrectText": "เวลาของอุปกรณ์ไม่ถูกต้อง ${HOURS} ชั่วโมง\nมีแนวโน้มที่จะทำให้เกิดปัญหา\nโปรดตรวจสอบการตั้งค่าเวลาและเขตเวลาของคุณ",
|
||||
"errorOutOfDiskSpaceText": "พื้นที่ว่างในเครื่องหมด",
|
||||
|
|
@ -644,6 +661,8 @@
|
|||
"errorText": "ข้อผิดพลาด",
|
||||
"errorUnknownText": "ข้อผิดพลาดที่ไม่รู้จัก",
|
||||
"exitGameText": "จะออกจาก ${APP_NAME} หรือไม่?",
|
||||
"expiredAgoText": "หมดอายุเมื่อ ${T} ที่แล้ว",
|
||||
"expiresInText": "หมดอายุใน ${T}",
|
||||
"exportSuccessText": "'${NAME}' ถูกส่งออกแล้ว",
|
||||
"externalStorageText": "พื้นที่ว่าง",
|
||||
"failText": "ล้มเหลว",
|
||||
|
|
@ -678,6 +697,8 @@
|
|||
"duplicateText": "ทำซ้ำ\nเพลย์ลิส",
|
||||
"editText": "แก้ไข\nเพลย์ลิส",
|
||||
"newText": "สร้าง\nเพลย์ลิสใหม่",
|
||||
"pointsToWinText": "คะแนนและชัยชนะ",
|
||||
"seriesLengthText": "ความยาวในการโชว์",
|
||||
"showTutorialText": "โชว์การสอนก่อนเริ่ม",
|
||||
"shuffleGameOrderText": "เรียงเกมตามลำดับ",
|
||||
"titleText": "ปรับแต่งเพลย์ลิส ${TYPE}"
|
||||
|
|
@ -703,6 +724,7 @@
|
|||
"copyCodeConfirmText": "คัดลอกรหัสไปยังคลิปบอร์ดแล้ว",
|
||||
"copyCodeText": "คัดลอกรหัส",
|
||||
"dedicatedServerInfoText": "เพื่อผลลัพธ์ที่ดีที่สุดตั้งค่าเซิร์ฟเวอร์เฉพาะ ดู bombsquadgame.com/server เพื่อเรียนรู้วิธีการ",
|
||||
"descriptionShortText": "ใช้หน้าต่างรวมตัวเพื่อเข้าร่วมปาร์ตี้",
|
||||
"disconnectClientsText": "สิ่งนี้จะตัดการเชื่อมต่อผู้เล่น ${COUNT} คน\nในงานปาร์ตี้ของคุณ คุณแน่ใจไหม?",
|
||||
"earnTicketsForRecommendingAmountText": "เพื่อน ๆ จะได้รับตั๋ว ${COUNT} ถ้าพวกเขาลองเล่นเกม\n(และคุณจะได้รับ ${YOU_COUNT} สำหรับแต่ละคนที่ทำ)",
|
||||
"earnTicketsForRecommendingText": "แชร์เกมนี้\nสำหรับตั๋วฟรี",
|
||||
|
|
@ -715,10 +737,10 @@
|
|||
"friendHasSentPromoCodeText": "${COUNT} ${APP_NAME} ตั๋วจาก ${NAME}",
|
||||
"friendPromoCodeAwardText": "คุณจะได้รับตั๋ว ${COUNT} ทุกครั้งที่ใช้",
|
||||
"friendPromoCodeExpireText": "รหัสจะหมดอายุใน ${EXPIRE_HOURS} ชั่วโมงและใช้ได้กับผู้เล่นใหม่เท่านั้น",
|
||||
"friendPromoCodeInstructionsText": "หากต้องการใช้งานให้เปิด ${APP_NAME} แล้วไปที่ \"การตั้งค่า -> ขั้นสูง -> ใส่รหัส\"\nดู bombsquadgame.com สำหรับลิงก์ดาวน์โหลดสำหรับแพลตฟอร์มที่รองรับทั้งหมด",
|
||||
"friendPromoCodeInstructionsText": "หากต้องการใช้ ให้เปิด ${APP_NAME} แล้วไปที่ \"การตั้งค่า->ขั้นสูง->ส่งข้อมูล\"\nไปที่ bombsquadgame.com เพื่อดูลิงก์ดาวน์โหลดสำหรับแพลตฟอร์มที่รองรับทั้งหมด",
|
||||
"friendPromoCodeRedeemLongText": "สามารถแลกเป็นตั๋วฟรี ${COUNT} คนสูงถึง ${MAX_USES} คน",
|
||||
"friendPromoCodeRedeemShortText": "สามารถแลกเป็นตั๋ว ${COUNT} ใบในเกม",
|
||||
"friendPromoCodeWhereToEnterText": "(ใน \"การตั้งค่า->ขั้นสูง->ป้อนรหัส\")",
|
||||
"friendPromoCodeWhereToEnterText": "(ใน \"ตั้งค่า->ขั้นสูง->ส่งข้อมูล\")",
|
||||
"getFriendInviteCodeText": "รับรหัสเชิญเพื่อน",
|
||||
"googlePlayDescriptionText": "เชิญผู้เล่น Google Play เข้าร่วมปาร์ตี้ของคุณ:",
|
||||
"googlePlayInviteText": "เชิญ",
|
||||
|
|
@ -814,6 +836,12 @@
|
|||
"youHaveShortText": "คุณมี ${COUNT} ใบ",
|
||||
"youHaveText": "คุณมีตั๋ว ${COUNT} ใบ"
|
||||
},
|
||||
"goldPass": {
|
||||
"desc1InfTokensText": "โทเค็นที่ไม่มีที่สิ้นสุด",
|
||||
"desc2NoAdsText": "ไม่มีโฆษณา",
|
||||
"desc3ForeverText": "ตลอดไป.",
|
||||
"goldPassText": "บัตรทองคำ"
|
||||
},
|
||||
"googleMultiplayerDiscontinuedText": "ขออภัย บริการผู้เล่นหลายคนของ Google ไม่มีให้บริการอีกต่อไป\nฉันกำลังดำเนินการเปลี่ยนให้เร็วที่สุด\nในระหว่างนี้ โปรดลองวิธีการเชื่อมต่ออื่น\n-เอริค",
|
||||
"googlePlayPurchasesNotAvailableText": "ไม่สามารถซื้อด้วย Google Play ได้\nคุณอาจต้องอัปเดตแอปร้านค้าของคุณ",
|
||||
"googlePlayServicesNotAvailableText": "บริการ Google Play ไม่พร้อมใช้งาน\nฟังก์ชันบางอย่างของแอปอาจถูกปิดใช้งาน",
|
||||
|
|
@ -888,6 +916,7 @@
|
|||
"importText": "นำเข้า",
|
||||
"importingText": "กำลังนำเข้า...",
|
||||
"inGameClippedNameText": "ในเกมจะเป็น\n\"${NAME}\"",
|
||||
"inboxText": "กล่องข้อความ",
|
||||
"installDiskSpaceErrorText": "ข้อผิดพลาด: ไม่สามารถทำการติดตั้งให้เสร็จสิ้นได้\nคุณอาจไม่มีที่ว่างบนอุปกรณ์ของคุณ\nล้างพื้นที่บางส่วนแล้วลองอีกครั้ง",
|
||||
"internal": {
|
||||
"arrowsToExitListText": "กด ${LEFT} หรือ ${RIGHT} เพื่อออกจากรายการ",
|
||||
|
|
@ -942,12 +971,14 @@
|
|||
"timeOutText": "(หมดเวลาใน ${TIME} วินาที)",
|
||||
"touchScreenJoinWarningText": "คุณได้เข้าร่วมกับหน้าจอสัมผัส\nหากนี่เป็นข้อผิดพลาด ให้แตะ 'เมนู -> ออกจากเกม' ด้วย",
|
||||
"touchScreenText": "หน้าจอสัมผัส",
|
||||
"unableToCompleteTryAgainText": "ไม่สามารถดำเนินการได้ในขณะนี้\nโปรดลองอีกครั้ง",
|
||||
"unableToResolveHostText": "ข้อผิดพลาด: ไม่สามารถแก้ไขโฮสต์",
|
||||
"unavailableNoConnectionText": "ไม่สามารถใช้งานได้ในขณะนี้ (ไม่มีการเชื่อมต่ออินเทอร์เน็ตหรอ?)",
|
||||
"vrOrientationResetCardboardText": "ใช้เพื่อรีเซ็ตการวางแนว VR\nในการเล่นเกม คุณจะต้องมีคอนโทรลเลอร์ภายนอก",
|
||||
"vrOrientationResetText": "รีเซ็ตการวางแนว VR",
|
||||
"willTimeOutText": "(จะหมดเวลาถ้าว่าง)"
|
||||
},
|
||||
"inventoryText": "คลังเก็บของ",
|
||||
"jumpBoldText": "กระโดด",
|
||||
"jumpText": "กระโดด",
|
||||
"keepText": "เก็บไว้",
|
||||
|
|
@ -994,8 +1025,11 @@
|
|||
"seasonEndsMinutesText": "จะสิ้นสุดซีซั่นในอีก ${NUMBER} นาที",
|
||||
"seasonText": "ซีซั่น ${NUMBER}",
|
||||
"tournamentLeagueText": "คุณต้องไปถึงลีก ${NAME} เพื่อเข้าร่วมการแข่งขันนี้",
|
||||
"trophyCountsResetText": "จำนวนถ้วยรางวัลจะรีเซ็ตในซีซั่นหน้า"
|
||||
"trophyCountsResetText": "จำนวนถ้วยรางวัลจะรีเซ็ตในซีซั่นหน้า",
|
||||
"upToDateBonusDescriptionText": "ผู้เล่นที่รันเกมนี้ด้วยเวอร์ชันล่าสุด\nจะได้รับโบนัส ${PERCENT}% ที่นี่",
|
||||
"upToDateBonusText": "โบนัสอัพเดท"
|
||||
},
|
||||
"learnMoreText": "เรียนรู้เพิ่มเติม",
|
||||
"levelBestScoresText": "คะแนนที่ดีที่สุดใน ${LEVEL}",
|
||||
"levelBestTimesText": "เวลาที่ดีที่สุดใน ${LEVEL}",
|
||||
"levelIsLockedText": "${LEVEL} ถูกล็อก",
|
||||
|
|
@ -1039,6 +1073,8 @@
|
|||
"modeArcadeText": "โหมดอาเขต",
|
||||
"modeClassicText": "โหมดคลาสสิก",
|
||||
"modeDemoText": "โหมดสาธิต",
|
||||
"moreSoonText": "จะมีเพิ่มเติมในเร็วๆ นี้...",
|
||||
"mostDestroyedPlayerText": "ผู้เล่นที่ถูกขยี้มากที่สุด",
|
||||
"mostValuablePlayerText": "ผู้เล่นที่ทำคะแนนมากที่สุด",
|
||||
"mostViolatedPlayerText": "ผู้เล่นที่ฆ่าน้อยที่สุด",
|
||||
"mostViolentPlayerText": "ผู้เล่นที่ฆ่ามากที่สุด",
|
||||
|
|
@ -1055,6 +1091,7 @@
|
|||
"nameSuicideText": "${NAME} ฆ่าตัวตาย",
|
||||
"nameText": "ชื่อ",
|
||||
"nativeText": "ดั้งเดิม",
|
||||
"newExclaimText": "ใหม่!",
|
||||
"newPersonalBestText": "ใหม่ส่วนตัวดีที่สุด!",
|
||||
"newTestBuildAvailableText": "มีการสร้างการทดสอบที่ใหม่กว่า! (${VERSION} บิลด์ ${BUILD})\nรับได้ที่ ${ADDRESS}",
|
||||
"newText": "ใหม่",
|
||||
|
|
@ -1065,6 +1102,7 @@
|
|||
"noContinuesText": "(ไม่มีต่อ)",
|
||||
"noExternalStorageErrorText": "ไม่พบที่จัดเก็บข้อมูลภายนอกในอุปกรณ์นี้",
|
||||
"noGameCircleText": "ข้อผิดพลาด: ไม่ได้ลงชื่อเข้าใช้ GameCircle",
|
||||
"noMessagesText": "ไม่มีข้อความ",
|
||||
"noPluginsInstalledText": "ไม่มีปลั๊กอินติดตั้งอยู่",
|
||||
"noScoresYetText": "ไม่มีคะแนน",
|
||||
"noServersFoundText": "ไม่พบเซิร์ฟเวอร์",
|
||||
|
|
@ -1073,11 +1111,12 @@
|
|||
"noValidMapsErrorText": "ไม่พบแผนที่ที่ถูกต้องสำหรับเกมนี้",
|
||||
"notEnoughPlayersRemainingText": "ไม่มีผู้เล่นเหลือพอ กรุณาออกแล้วเริ่มเกมใหม่",
|
||||
"notEnoughPlayersText": "คุณต้องการผู้เล่นอย่างน้อย ${COUNT} คนจึงจะเริ่มเกมได้!",
|
||||
"notEnoughTicketsText": "มีตั๋วไม่พอ!",
|
||||
"notNowText": "ไม่ใช่ตอนนี้",
|
||||
"notSignedInErrorText": "คุณต้องลงชื่อเข้าใช้เพื่อทำสิ่งนี้",
|
||||
"notSignedInGooglePlayErrorText": "คุณต้องลงชื่อเข้าใช้ Google Play เพื่อดำเนินการนี้",
|
||||
"notSignedInText": "ไม่ได้ลงชื่อเข้าใช้",
|
||||
"notUsingAccountText": "หมายเหตุ: ละเว้นบัญชี ${SERVICE}\nไปที่ 'บัญชี -> ลงชื่อเข้าใช้ด้วย ${SERVICE}' หากคุณต้องการ",
|
||||
"notSignedInErrorText": "คุณต้องเข้าสู่ระบบเพื่อทำสิ่งนี้",
|
||||
"notSignedInGooglePlayErrorText": "คุณต้องเข้าสู่ระบบ Google Play เพื่อดำเนินการต่อ",
|
||||
"notSignedInText": "ไม่ได้เข้าสู่ระบบ",
|
||||
"notUsingAccountText": "หมายเหตุ: ละเว้นบัญชี ${SERVICE}\nไปที่ 'บัญชี -> เข้าสู่ระบบด้วย ${SERVICE}' หากคุณต้องการ",
|
||||
"nothingIsSelectedErrorText": "ไม่มีอะไรถูกเลือก!",
|
||||
"numberText": "#${NUMBER}",
|
||||
"offText": "ปิด",
|
||||
|
|
@ -1085,9 +1124,12 @@
|
|||
"onText": "เปิด",
|
||||
"oneMomentText": "แป๊บนึง...",
|
||||
"onslaughtRespawnText": "${PLAYER} จะเกิดใหม่ในรอบที่ ${WAVE}",
|
||||
"openMeText": "เปิดฉันสิ!",
|
||||
"openNowText": "เปิดตอนนี้",
|
||||
"openText": "เปิด",
|
||||
"orText": "${A} หรือ ${B}",
|
||||
"otherText": "อื่น...",
|
||||
"outOfText": "(#${RANK} จาก ${ALL})",
|
||||
"outOfText": "ที่ (#${RANK} จาก ${ALL})",
|
||||
"ownFlagAtYourBaseWarning": "ธงของคุณจะต้องอยู่ที่\nฐานจึงจะทำคะแนนได้!",
|
||||
"packageModsEnabledErrorText": "การเล่นแบบใช้เน็ตไม่มสามรถใช้งานได้ในเมื่อ \"แพ็คเกจม็อดท้องถิ่น\" กำลังเปิดอยู่ (ดูได้ใน การตั้งค่า-> ขั้นสูง)",
|
||||
"partyWindow": {
|
||||
|
|
@ -1170,6 +1212,8 @@
|
|||
"punchText": "ต่อย",
|
||||
"purchaseForText": "ซื้อในราคา ${PRICE}",
|
||||
"purchaseGameText": "ซื้อเกม",
|
||||
"purchaseNeverAvailableText": "ขออภัย ไม่สามารถซื้อได้ในขณะนี้\nลองลงชื่อเข้าใช้บัญชีของคุณบนอุปกรณ์อื่นแล้วซื้ออีกครั้ง",
|
||||
"purchaseNotAvailableText": "ไม่สามารถซื้อได้ในขณะนี้",
|
||||
"purchasingText": "กำลังจัดซื้อ...",
|
||||
"quitGameText": "ออกจาก ${APP_NAME} ไหม?",
|
||||
"quittingIn5SecondsText": "ออกจากระบบใน 5 วินาที...",
|
||||
|
|
@ -1211,6 +1255,7 @@
|
|||
"version_mismatch": "เวอร์ชั่นตรงกัน.\nตรวจสอบให้แน่ใจว่า BombSquad และ BombSquad Remote\nเป็นเวอร์ชันล่าสุดแล้วลองอีกครั้ง"
|
||||
},
|
||||
"removeInGameAdsText": "ปลดล็อก \"${PRO}\" ในร้านค้าเพื่อลบโฆษณาในเกม",
|
||||
"removeInGameAdsTokenPurchaseText": "ข้อเสนอจำกัดเวลา: ซื้อแพ็คโทเค็นใดๆ เพื่อลบโฆษณาในเกม",
|
||||
"renameText": "เปลี่ยนชื่อ",
|
||||
"replayEndText": "สิ้นสุดการเล่นซ้ำ",
|
||||
"replayNameDefaultText": "รีเพลย์เกมล่าสุด",
|
||||
|
|
@ -1244,10 +1289,11 @@
|
|||
},
|
||||
"scoreWasText": "(เดิมคือ ${COUNT})",
|
||||
"selectText": "เลือก",
|
||||
"sendInfoDescriptionText": "ส่งข้อมูลบัญชีและสถานะแอปให้กับนักพัฒนา\nโปรดระบุชื่อหรือเหตุผลในการส่ง",
|
||||
"seriesWinLine1PlayerText": "ชนะ",
|
||||
"seriesWinLine1TeamText": "ชนะ",
|
||||
"seriesWinLine1Text": "ชนะ",
|
||||
"seriesWinLine2Text": "ซีรีส์",
|
||||
"seriesWinLine2Text": "ซีรีส์!",
|
||||
"settingsWindow": {
|
||||
"accountText": "บัญชี",
|
||||
"advancedText": "ขั้นสูง",
|
||||
|
|
@ -1261,41 +1307,52 @@
|
|||
"alwaysUseInternalKeyboardDescriptionText": "(แป้นพิมพ์บนหน้าจอที่เรียบง่ายและเป็นมิตรกับตัวควบคุมสำหรับการแก้ไขข้อความ)",
|
||||
"alwaysUseInternalKeyboardText": "ใช้แป้นพิมพ์ภายในเสมอ",
|
||||
"benchmarksText": "เกณฑ์มาตรฐานและการทดสอบความเครียด",
|
||||
"disableCameraGyroscopeMotionText": "ปิดใช้งานการเคลื่อนไหวของกล้อง Gyroscope",
|
||||
"disableCameraShakeText": "ปิดใช้งานการสั่นของกล้อง",
|
||||
"devToolsText": "เครื่องมือสำหรับนักพัฒนา",
|
||||
"disableCameraGyroscopeMotionText": "ปิดใช้งานการเคลื่อนไหวของไจโรสโคปของกล้อง",
|
||||
"disableCameraShakeText": "ปิดการสั่นของกล้อง",
|
||||
"disableThisNotice": "(คุณสามารถปิดการใช้งานประกาศนี้ในการตั้งค่าขั้นสูง)",
|
||||
"enablePackageModsDescriptionText": "(การเปิดใช้งานที่ทำให้ใช้ม็อดได้หลากหลายมากขึ้นแต่จะปิดระบบการเล่นแบบใช้เน็ต)",
|
||||
"enablePackageModsText": "เปิดแพ็คเกจม็อดท้องถิ่น",
|
||||
"enterPromoCodeText": "ใส่รหัส",
|
||||
"forTestingText": "หมายเหตุ: ค่าเหล่านี้ใช้สำหรับการทดสอบเท่านั้นและจะสูญหายไปเมื่อออกจากแอป",
|
||||
"helpTranslateText": "การแปลที่ไม่ใช่ภาษาอังกฤษของ ${APP_NAME} เป็นชุมชน\nสนับสนุนความพยายาม หากคุณต้องการมีส่วนร่วมหรือแก้ไข\nแปลตามลิงค์ด้านล่างครับ ขอบคุณล่วงหน้า!",
|
||||
"helpTranslateText": "การแปลที่ไม่ใช่ภาษาอังกฤษของเกม ${APP_NAME} ได้รับการ\nสนับสนุนจากชุมชน หากคุณต้องการมีส่วนร่วมหรือแก้ไขการแปล \nโปรดคลิ๊กลิงก์ด้านล่าง ขอบคุณล่วงหน้า!",
|
||||
"insecureConnectionsDescriptionText": "ไม่แนะนำแต่สามารถเล่นออนไลน์ได้\nจากประเทศหรือเครือข่ายที่ถูกจำกัด",
|
||||
"insecureConnectionsText": "ใช้การเชื่อมต่อที่ไม่ปลอดภัย",
|
||||
"kickIdlePlayersText": "เตะผู้เล่นที่ไม่ได้ใช้งาน",
|
||||
"kidFriendlyModeText": "โหมดเป็นมิตรกับเด็ก (ลดความรุนแรง ฯลฯ)",
|
||||
"languageText": "ภาษา",
|
||||
"moddingGuideText": "คู่มือการม็อด",
|
||||
"moddingToolsText": "การดัดแปลงเครื่องมือเกม",
|
||||
"mustRestartText": "คุณต้องเริ่มเกมใหม่เพื่อให้สิ่งนี้มีผล",
|
||||
"netTestingText": "การทดสอบเครือข่าย",
|
||||
"resetText": "รีเซ็ต",
|
||||
"sendInfoText": "ส่งข้อมูล",
|
||||
"showBombTrajectoriesText": "แสดงวิถีลูกระเบิด",
|
||||
"showInGamePingText": "แสดง Ping ในเกม",
|
||||
"showDemosWhenIdleText": "แสดงการสาธิตเมื่อไม่ได้ใช้งาน",
|
||||
"showDeprecatedLoginTypesText": "แสดงประเภทการเข้าสู่ระบบที่ไม่ใช้แล้ว",
|
||||
"showDevConsoleButtonText": "แสดงปุ่มคอนโซลสำรับนักพัฒนา",
|
||||
"showInGamePingText": "แสดงค่า ping ในเกม",
|
||||
"showPlayerNamesText": "แสดงชื่อผู้เล่น",
|
||||
"showUserModsText": "แสดงโฟลเดอร์ Mods",
|
||||
"titleText": "ขั้นสูง",
|
||||
"translationEditorButtonText": "${APP_NAME} ผู้แก้ไขการแปล",
|
||||
"translationEditorButtonText": "หน้าแก้ไขการแปลภาษาของ ${APP_NAME}",
|
||||
"translationFetchErrorText": "สถานะการแปลไม่พร้อมใช้งาน",
|
||||
"translationFetchingStatusText": "กำลังตรวจสอบสถานะการแปล...",
|
||||
"translationInformMe": "แจ้งฉันเมื่อภาษาของฉันต้องการการอัปเดต",
|
||||
"translationNoUpdateNeededText": "ภาษาปัจจุบันเป็นปัจจุบัน วู้ฮู!",
|
||||
"translationUpdateNeededText": "** ภาษาปัจจุบันต้องการการอัปเดต !! **",
|
||||
"translationNoUpdateNeededText": "ภาษาปัจจุบันทันสมัยแล้ว",
|
||||
"translationUpdateNeededText": "** ภาษาปัจจุบันต้องการการอัปเดตตอนนี้!! **",
|
||||
"vrTestingText": "การทดสอบ VR"
|
||||
},
|
||||
"shareText": "แบ่งปัน",
|
||||
"sharingText": "การแบ่งปัน...",
|
||||
"showText": "แสดง",
|
||||
"signInForPromoCodeText": "คุณต้องลงชื่อเข้าใช้บัญชีเพื่อให้รหัสมีผล",
|
||||
"signInForPromoCodeText": "คุณต้องเข้าสู่ระบบเพื่อให้รหัสมีผล",
|
||||
"signInWithGameCenterText": "ในการใช้บัญชี Game Center\nลงชื่อเข้าใช้ด้วยแอพ Game Center",
|
||||
"singleGamePlaylistNameText": "แค่ ${GAME}",
|
||||
"singlePlayerCountText": "ผู้เล่น 1 คน",
|
||||
"sizeLargeText": "ใหญ่",
|
||||
"sizeMediumText": "ปานกลาง",
|
||||
"sizeSmallText": "เล็ก",
|
||||
"soloNameFilterText": "เดี่ยว ${NAME}",
|
||||
"soundtrackTypeNames": {
|
||||
"CharSelect": "การเลือกตัวละคร",
|
||||
|
|
@ -1368,7 +1425,9 @@
|
|||
"storeText": "ร้านค้า",
|
||||
"submitText": "ส่ง",
|
||||
"submittingPromoCodeText": "กำลังส่งรหัส...",
|
||||
"teamNamesColorText": "Team Names/Colors...",
|
||||
"successText": "ความสำเร็จ!",
|
||||
"supportEmailText": "หากคุณประสบปัญหาใดๆ กับแอป โปรดส่งอีเมลไปที่ ${EMAIL}",
|
||||
"teamNamesColorText": "ชื่อทีม/สี...",
|
||||
"telnetAccessGrantedText": "เปิดใช้งานการเข้าถึง Telnet",
|
||||
"telnetAccessText": "ตรวจพบการเข้าถึง Telnet; อนุญาต?",
|
||||
"testBuildErrorText": "รุ่นทดสอบนี้ไม่ทำงานอีกต่อไป โปรดตรวจสอบเวอร์ชันใหม่",
|
||||
|
|
@ -1377,6 +1436,7 @@
|
|||
"testBuildValidatedText": "ทดสอบบิลด์ที่ตรวจสอบแล้ว; สนุก!",
|
||||
"thankYouText": "ขอบคุณสำหรับการสนับสนุนของคุณ! สนุกกับเกม!!",
|
||||
"threeKillText": "ฆ่าสามครั้ง!!",
|
||||
"ticketsDescriptionText": "สามารถใช้ตั๋วเพื่อปลดล็อคตัวละคร,\nแผนที่, มินิเกมและอื่นๆ ได้ในร้านค้า\n\nสามารถพบตั๋วได้ในหีบที่ได้รับจาก\nแคมเปญ, ทัวร์นาเมนต์และความสำเร็จ",
|
||||
"timeBonusText": "โบนัสเวลา",
|
||||
"timeElapsedText": "เวลาที่ผ่านไป",
|
||||
"timeExpiredText": "เวลาหมด",
|
||||
|
|
@ -1387,10 +1447,23 @@
|
|||
"tipText": "เคล็ดลับ",
|
||||
"titleText": "BombSquad",
|
||||
"titleVRText": "BombSquad VR",
|
||||
"tokens": {
|
||||
"getTokensText": "รับโทเค็น",
|
||||
"notEnoughTokensText": "โทเค็นไม่เพียงพอ!",
|
||||
"numTokensText": "${COUNT} โทเค็น",
|
||||
"shinyNewCurrencyText": "สกุลเงินใหม่อันแวววาวของ BombSquad",
|
||||
"tokenPack1Text": "แพ็คโทเค็นขนาดเล็ก!",
|
||||
"tokenPack2Text": "แพ็คโทเค็นขนาดกลาง!",
|
||||
"tokenPack3Text": "แพ็คโทเค็นขนาดใหญ่",
|
||||
"tokenPack4Text": "แพ็คโทเค็นจัมโบ้!!",
|
||||
"tokensDescriptionText": "โทเค็นใช้เพื่อเร่งความเร็วในการปลดล็อกหีบ\nและสำหรับคุณสมบัติของเกมและบัญชีอื่นๆ\n\nคุณสามารถรับโทเค็นในเกมหรือซื้อเป็นแพ็ค \nหรือซื้อ Gold Pass เพื่อรับรางวัลไม่จำกัด\nและไม่ต้องพบเจอมันอีกต่อไป",
|
||||
"youHaveGoldPassText": "คุณมี บัตรทองคำ\nการซื้อโทเค็นทั้งหมดฟรี\nสนุกได้เลย!"
|
||||
},
|
||||
"topFriendsText": "เพื่อนที่ดีที่สุด",
|
||||
"tournamentCheckingStateText": "การตรวจสอบสถานะการแข่งขัน โปรดรอ...",
|
||||
"tournamentEndedText": "การแข่งขันนี้สิ้นสุดลงแล้ว ใหม่จะเริ่มเร็ว ๆ นี้",
|
||||
"tournamentEntryText": "รายการแข่งขัน",
|
||||
"tournamentFinalStandingsText": "ตารางสรุปผลคะแนน",
|
||||
"tournamentResultsRecentText": "ผลการแข่งขันล่าสุด",
|
||||
"tournamentStandingsText": "อันดับการแข่งขัน",
|
||||
"tournamentText": "การแข่งขัน",
|
||||
|
|
@ -1446,6 +1519,18 @@
|
|||
"Uber Onslaught": "Uber Onslaught",
|
||||
"Uber Runaround": "Uber Runaround"
|
||||
},
|
||||
"displayItemNames": {
|
||||
"${C} Tickets": "ตั๋ว ${C} ใบ",
|
||||
"${C} Tokens": "โทเคน ${C} เหรียญ",
|
||||
"Chest": "หีบทั่วไป",
|
||||
"L1 Chest": "หีบระดับ 1",
|
||||
"L2 Chest": "หีบระดับ 2",
|
||||
"L3 Chest": "หีบระดับ 3",
|
||||
"L4 Chest": "หีบระดับ 4",
|
||||
"L5 Chest": "หีบระดับ 5",
|
||||
"L6 Chest": "หีบระดับ 6",
|
||||
"Unknown Chest": "หีบที่ไม่รู้จัก"
|
||||
},
|
||||
"gameDescriptions": {
|
||||
"Be the chosen one for a length of time to win.\nKill the chosen one to become it.": "เป็นผู้ที่ได้รับเลือกเป็นระยะเวลาหนึ่งเพื่อชนะ\nฆ่าคนที่ถูกเลือกให้เป็น",
|
||||
"Bomb as many targets as you can.": "วางระเบิดเป้าหมายให้ได้มากที่สุด",
|
||||
|
|
@ -1550,6 +1635,7 @@
|
|||
"Korean": "ภาษาเกาหลี",
|
||||
"Malay": "ภาษามาเลเซีย",
|
||||
"Persian": "ภาษาเปอร์เซีย",
|
||||
"PirateSpeak": "โจรสลัดพูดกับคุณ",
|
||||
"Polish": "ภาษาโปแลนด์",
|
||||
"Portuguese": "ภาษาโปรตุเกส",
|
||||
"Romanian": "ภาษาโรมาเนีย",
|
||||
|
|
@ -1580,7 +1666,7 @@
|
|||
"Football Stadium": "สนามฟุตบอล",
|
||||
"Happy Thoughts": "ความคิดที่เป็นสุข",
|
||||
"Hockey Stadium": "สนามฮอกกี้",
|
||||
"Lake Frigid": "ทะเลสาบฟริจิด",
|
||||
"Lake Frigid": "ทะเลสาบเยือกแข็ง",
|
||||
"Monkey Face": "หน้าลิง",
|
||||
"Rampage": "อาละวาด",
|
||||
"Roundabout": "วงเวียน",
|
||||
|
|
@ -1621,6 +1707,7 @@
|
|||
"Cheating detected; scores and prizes suspended for ${COUNT} days.": "ตรวจพบการโกง; คะแนนและรางวัลถูกระงับเป็นเวลา ${COUNT} วัน",
|
||||
"Could not establish a secure connection.": "ไม่สามารถสร้างการเชื่อมต่อที่ปลอดภัย",
|
||||
"Daily maximum reached.": "ถึงสูงสุดรายวันแล้ว",
|
||||
"Daily sign-in reward": "รางวัลการลงชื่อเข้าใช้รายวัน",
|
||||
"Entering tournament...": "เข้าสู่การแข่งขัน...",
|
||||
"Invalid code.": "รหัสไม่ถูกต้อง",
|
||||
"Invalid payment; purchase canceled.": "การชำระเงินไม่ถูกต้อง การซื้อถูกยกเลิก",
|
||||
|
|
@ -1630,11 +1717,14 @@
|
|||
"Item unlocked!": "ปลดล็อคไอเทมแล้ว!",
|
||||
"LINKING DENIED. ${ACCOUNT} contains\nsignificant data that would ALL BE LOST.\nYou can link in the opposite order if you'd like\n(and lose THIS account's data instead)": "การเชื่อมโยงถูกปฏิเสธ ${ACCOUNT} ประกอบด้วย\nข้อมูลสำคัญที่จะสูญหายทั้งหมด\nคุณสามารถเชื่อมโยงในลำดับตรงกันข้ามหากคุณต้องการ\n(และสูญเสียข้อมูลของบัญชีนี้แทน)",
|
||||
"Link account ${ACCOUNT} to this account?\nAll existing data on ${ACCOUNT} will be lost.\nThis can not be undone. Are you sure?": "เชื่อมโยงบัญชี ${ACCOUNT} กับบัญชีนี้หรือไม่\nข้อมูลที่มีอยู่ทั้งหมดใน ${ACCOUNT} จะหายไป\nไม่สามารถยกเลิกได้ คุณแน่ใจไหม?",
|
||||
"Longer streaks lead to better rewards.": "ยิ่งรับรางวัลต่อเนื่องนานเท่าไรก็จะยิ่งได้รับรางวัลที่ดียิ่งขึ้นเท่านั้น",
|
||||
"Max number of playlists reached.": "ถึงจำนวนเพลย์ลิสต์สูงสุดแล้ว",
|
||||
"Max number of profiles reached.": "ถึงจำนวนโปรไฟล์สูงสุดแล้ว",
|
||||
"Maximum friend code rewards reached.": "รางวัลรหัสเพื่อนถึงขีดจำกัดแล้ว",
|
||||
"Message is too long.": "ข้อความยาวเกินไป",
|
||||
"New tournament result!": "ผลการแข่งขันใหม่!",
|
||||
"No servers are available. Please try again soon.": "ไม่มีเซิร์ฟเวอร์ที่พร้อมใช้งาน โปรดลองอีกครั้งในเร็วๆ นี้",
|
||||
"No slots available. Free a slot and try again.": "ไม่มีช่องว่าง ทำให้มีช่องเก็บหีบว่างแล้วลองใหม่อีกครั้ง",
|
||||
"Profile \"${NAME}\" upgraded successfully.": "อัปเกรดโปรไฟล์ \"${NAME}\" สำเร็จแล้ว",
|
||||
"Profile could not be upgraded.": "ไม่สามารถอัพเกรดโปรไฟล์ได้",
|
||||
"Purchase successful!": "ซื้อสำเร็จ!",
|
||||
|
|
@ -1644,7 +1734,9 @@
|
|||
"Sorry, this code has already been used.": "ขออภัย รหัสนี้ถูกใช้ไปแล้ว",
|
||||
"Sorry, this code has expired.": "ขออภัย รหัสนี้หมดอายุแล้ว",
|
||||
"Sorry, this code only works for new accounts.": "ขออภัย รหัสนี้ใช้ได้กับบัญชีใหม่เท่านั้น",
|
||||
"Sorry, this has expired.": "ขออภัย หมดอายุแล้ว",
|
||||
"Still searching for nearby servers; please try again soon.": "ยังคงค้นหาเซิร์ฟเวอร์ใกล้เคียง โปรดลองอีกครั้งในเร็วๆ นี้",
|
||||
"Streak: ${NUM} days": "ต่อเนื่อง: ${NUM} วัน",
|
||||
"Temporarily unavailable; please try again later.": "ปิดให้บริการชั่วคราว; โปรดลองอีกครั้งในภายหลัง.",
|
||||
"The tournament ended before you finished.": "การแข่งขันสิ้นสุดลงก่อนที่คุณจะเสร็จสิ้น",
|
||||
"This account cannot be unlinked for ${NUM} days.": "บัญชีนี้ไม่สามารถยกเลิกการเชื่อมโยงได้เป็นเวลา ${NUM} วัน",
|
||||
|
|
@ -1655,19 +1747,27 @@
|
|||
"Tournaments require ${VERSION} or newer": "ทัวร์นาเมนต์ต้องใช้ ${VERSION} หรือใหม่กว่า",
|
||||
"Unlink ${ACCOUNT} from this account?\nAll data on ${ACCOUNT} will be reset.\n(except for achievements in some cases)": "ยกเลิกการเชื่อมโยง ${ACCOUNT} จากบัญชีนี้หรือไม่\nข้อมูลทั้งหมดใน ${ACCOUNT} จะถูกรีเซ็ต\n(ยกเว้นความสำเร็จในบางกรณี)",
|
||||
"WARNING: complaints of hacking have been issued against your account.\nAccounts found to be hacking will be banned. Please play fair.": "คำเตือน: มีการร้องเรียนเกี่ยวกับการแฮ็กบัญชีของคุณ\nบัญชีที่พบว่ามีการแฮ็คจะถูกแบน กรุณาเล่นอย่างยุติธรรม",
|
||||
"Wait reduced!": "ลดเวลารอแล้ว!",
|
||||
"Would you like to link your device account to this one?\n\nYour device account is ${ACCOUNT1}\nThis account is ${ACCOUNT2}\n\nThis will allow you to keep your existing progress.\nWarning: this cannot be undone!\n": "คุณต้องการเชื่อมโยงบัญชีอุปกรณ์ของคุณกับบัญชีนี้หรือไม่?\n\nบัญชีอุปกรณ์ของคุณคือ ${ACCOUNT1}\nบัญชีนี้คือ ${ACCOUNT2}\n\nนี้จะช่วยให้คุณรักษาความคืบหน้าที่มีอยู่ของคุณ\nคำเตือน: สิ่งนี้ไม่สามารถยกเลิกได้!",
|
||||
"You already own this!": "คุณเป็นเจ้าของสิ่งนี้แล้ว!",
|
||||
"You can join in ${COUNT} seconds.": "คุณสามารถเข้าร่วมได้ภายในอีก ${COUNT} วินาที",
|
||||
"You don't have enough tickets for this!": "คุณมีตั๋วไม่เพียงพอสำหรับสิ่งนี้!",
|
||||
"You don't own that.": "คุณไม่ได้เป็นเจ้าของสิ่งนั้น",
|
||||
"You got ${COUNT} tickets!": "คุณได้รับตั๋ว ${COUNT} ใบ!",
|
||||
"You got ${COUNT} tokens!": "คุณได้รับโทเคน ${COUNT} เหรียญ!",
|
||||
"You got a ${ITEM}!": "คุณได้รับ ${ITEM}!",
|
||||
"You got a chest!": "คุณได้รับหีบ!",
|
||||
"You got an achievement reward!": "คุณได้รับรางวัลความสำเร็จ!",
|
||||
"You have been promoted to a new league; congratulations!": "คุณได้รับการเลื่อนตำแหน่งเป็นลีกใหม่ ยินดีด้วย!",
|
||||
"You lost a chest! (All your chest slots were full)": "คุณเสียหีบไป! (ช่องเก็บหีบของคุณเต็มหมดแล้ว)",
|
||||
"You must update the app to view this.": "คุณต้องอัปเดตแอปเพื่อดูสิ่งนี้",
|
||||
"You must update to a newer version of the app to do this.": "คุณต้องอัปเดตแอปเป็นเวอร์ชันใหม่กว่าจึงจะทำได้",
|
||||
"You must update to the newest version of the game to do this.": "คุณต้องอัปเดตเป็นเวอร์ชันใหม่ล่าสุดของเกมจึงจะสามารถทำได้",
|
||||
"You must wait a few seconds before entering a new code.": "คุณต้องรอสักครู่ก่อนที่จะป้อนรหัสใหม่",
|
||||
"You placed #${RANK} in a tournament!": "คุณอยู่อันดับที่ #${RANK} ในการแข่งขัน!",
|
||||
"You ranked #${RANK} in the last tournament. Thanks for playing!": "คุณติดอันดับ #${RANK} ในทัวร์นาเมนต์ที่แล้ว ขอบคุณสำหรับการเล่น!",
|
||||
"Your account was rejected. Are you signed in?": "บัญชีของคุณถูกปฏิเสธ คุณลงชื่อเข้าใช้หรือไม่",
|
||||
"Your account was rejected. Are you signed in?": "บัญชีของคุณถูกปฏิเสธ คุณได้เข้าสู่ระบบหรือไม่?",
|
||||
"Your ad views are not registering. Ad options will be limited for a while.": "การดูโฆษณาของคุณไม่ได้ถูกบันทึก ตัวเลือกโฆษณาจะถูกจำกัดชั่วคราว",
|
||||
"Your copy of the game has been modified.\nPlease revert any changes and try again.": "สำเนาเกมของคุณได้รับการแก้ไขแล้ว\nโปรดยกเลิกการเปลี่ยนแปลงและลองอีกครั้ง",
|
||||
"Your friend code was used by ${ACCOUNT}": "รหัสเพื่อนของคุณถูกใช้โดย ${ACCOUNT}"
|
||||
},
|
||||
|
|
@ -1816,11 +1916,13 @@
|
|||
"toSkipPressAnythingText": "(แตะหรือกดอะไรก็ได้เพื่อข้ามบทแนะนำ)"
|
||||
},
|
||||
"twoKillText": "ดับเบิ้ลคิล!",
|
||||
"uiScaleText": "สเกล UI",
|
||||
"unavailableText": "ไม่พร้อมใช้งาน",
|
||||
"unconfiguredControllerDetectedText": "ตรวจพบคอนโทรลเลอร์ที่ไม่ได้กำหนดค่า:",
|
||||
"unlockThisInTheStoreText": "สิ่งนี้จะต้องปลดล็อคในร้านค้า",
|
||||
"unlockThisProfilesText": "ในการสร้างมากกว่า ${NUM} โปรไฟล์ คุณต้อง:",
|
||||
"unlockThisText": "เพื่อปลดล็อกสิ่งนี้ คุณต้อง:",
|
||||
"unsupportedControllerText": "ขออภัย ไม่รองรับตัวควบคุม \"${NAME}\"",
|
||||
"unsupportedHardwareText": "ขออภัย ฮาร์ดแวร์นี้ไม่ได้รับการสนับสนุนโดยบิวด์ของเกมนี้",
|
||||
"upFirstText": "ขึ้นก่อน:",
|
||||
"upNextText": "ต่อไปในเกม ${COUNT}:",
|
||||
|
|
@ -1828,10 +1930,14 @@
|
|||
"upgradeText": "อัพเกรด",
|
||||
"upgradeToPlayText": "ปลดล็อก \"${PRO}\" ในร้านค้าในเกมเพื่อเล่นเกมนี้",
|
||||
"useDefaultText": "ใช้ค่าเริ่มต้น",
|
||||
"userSystemScriptsCreateText": "สร้างสคริปต์ระบบผู้ใช้",
|
||||
"userSystemScriptsDeleteText": "ลบสคริปต์ระบบผู้ใช้",
|
||||
"usesExternalControllerText": "เกมนี้ใช้คอนโทรลเลอร์ภายนอกสำหรับการป้อนข้อมูล",
|
||||
"usingItunesText": "การใช้แอพ Music สำหรับซาวด์แทร็ก...",
|
||||
"v2AccountLinkingInfoText": "หากต้องการเชื่อมโยงบัญชี V2 ให้ใช้ปุ่ม 'จัดการบัญชี'",
|
||||
"v2AccountRequiredText": "จำเป็นต้องมีบัญชี V2 อัปเกรดบัญชีของคุณแล้วลองอีกครั้ง",
|
||||
"validatingTestBuildText": "กำลังตรวจสอบการสร้างการทดสอบ...",
|
||||
"viaText": "จาก",
|
||||
"victoryText": "ชัยชนะ!",
|
||||
"voteDelayText": "คุณไม่สามารถเริ่มโหวตได้อีกเป็นเวลา ${NUMBER} วินาที",
|
||||
"voteInProgressText": "กำลังดำเนินการโหวทอยู่แล้ว",
|
||||
|
|
@ -1896,5 +2002,6 @@
|
|||
},
|
||||
"yesAllowText": "ใช่อนุญาต!",
|
||||
"yourBestScoresText": "คะแนนที่ดีที่สุดของคุณ",
|
||||
"yourBestTimesText": "เวลาที่ดีที่สุดของคุณ"
|
||||
"yourBestTimesText": "เวลาที่ดีที่สุดของคุณ",
|
||||
"yourPrizeText": "รางวัลของคุณ:"
|
||||
}
|
||||
103
dist/ba_data/data/languages/turkish.json
vendored
103
dist/ba_data/data/languages/turkish.json
vendored
|
|
@ -7,7 +7,9 @@
|
|||
"campaignProgressText": "Mücadele İlerlemesi [Zor]: ${PROGRESS}",
|
||||
"changeOncePerSeason": "Bunu sezon başına sadece bir kere değiştirebilirsin",
|
||||
"changeOncePerSeasonError": "Bunu tekrar değiştirmek için bir sonraki sezona kadar beklemelisin (${NUM}gün)",
|
||||
"createAnAccountText": "Hesap Oluştur",
|
||||
"customName": "Özel isim",
|
||||
"deleteAccountText": "Hesabı Sil",
|
||||
"googlePlayGamesAccountSwitchText": "Eğer farklı bir google hesabı kullanmak istiyorsanız,\nGoogle Play Oyunlar uygulamasını kullabilirsiniz.",
|
||||
"linkAccountsEnterCodeText": "Kod Gir",
|
||||
"linkAccountsGenerateCodeText": "Kod Oluştur",
|
||||
|
|
@ -34,7 +36,7 @@
|
|||
"signInWithTestAccountText": "Test hesabı ile Giriş yap",
|
||||
"signInWithText": "${SERVICE} ile giriş yap.",
|
||||
"signInWithV2InfoText": "(bütün platformlarda çalışan bir hesap)",
|
||||
"signInWithV2Text": "BombSquad hesabıyla giriş yap",
|
||||
"signInWithV2Text": "${APP_NAME} hesabıyla giriş yap",
|
||||
"signOutText": "Çıkış Yap",
|
||||
"signingInText": "Giriş yapılıyor...",
|
||||
"signingOutText": "Çıkış yapılıyor...",
|
||||
|
|
@ -342,6 +344,8 @@
|
|||
"allowText": "Kabul Et",
|
||||
"alreadySignedInText": "Başka bir cihazda hesabına giriş yapılmış;\nlütfen hesapları değiştir ya da diğer cihazlardaki\noyunu kapat ve tekrar dene.",
|
||||
"apiVersionErrorText": "Modul yüklenemiyor ${NAME}; hedef api-versiyon ${VERSION_USED}; ihtiyacımız olan ${VERSION_REQUIRED}.",
|
||||
"applyText": "Kaydet",
|
||||
"areYouSureText": "Emin misin?",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(\"Oto\" yalnızca kulaklıklar takılı iken etkinleşir)",
|
||||
"headRelativeVRAudioText": "Head-Relative VR Ses",
|
||||
|
|
@ -364,14 +368,23 @@
|
|||
"boostText": "Öne Geç",
|
||||
"bsRemoteConfigureInAppText": "${REMOTE_APP_NAME} Uygulamayı kendisine yapılandır",
|
||||
"buttonText": "buton",
|
||||
"canWeDebugText": "Oyun otomatik olarak hataları, çökmeleri ve basit \nkullanım istatistiklerini geliştiriciye gondersin mi?\n\nBu veri içeriği kişisel bilgilerinizi kullanmaz\noyunun daha iyi çalışmasına yardımcı olur.",
|
||||
"canWeDebugText": "${APP_NAME} hataları, çökmeleri ve basit kullanım \nbilgilerini otomatik olarak geliştiriciye göndersin mi?\n\nBu veri hiçbir kişisel bilgi içermez ve oyunun daha \nakıcı ve hatasız çalısmasına yardımcı olur.",
|
||||
"cancelText": "İptal",
|
||||
"cantConfigureDeviceText": "Üzgünüz, ${DEVICE} ayarlanabilir değil.",
|
||||
"challengeEndedText": "Bu mücadele sona erdi.",
|
||||
"chatMuteText": "Konuşmayı sustur",
|
||||
"chatMutedText": "Sohbet Susturuldu",
|
||||
"chatUnMuteText": "Konuşmayı aç",
|
||||
"chests": {
|
||||
"prizeOddsText": "Olası Ödüller",
|
||||
"reduceWaitText": "Beklemeyi Hızlandır",
|
||||
"slotDescriptionText": "Bu yuvaya sandık koyulabilir.\n\nSandıklar mücadele bölümleri oynayarak, \nturnuvalara katılarak ve başarılar elde \nederek kazanılır.",
|
||||
"slotText": "Sandık Yuvası ${NUM}",
|
||||
"slotsFullWarningText": "UYARI: Bütün sandık yuvaları dolu.\nBu oyundan kazandığın sandıklar kaybolacak.",
|
||||
"unlocksInText": "Açılacak"
|
||||
},
|
||||
"choosingPlayerText": "<oyuncu seçme>",
|
||||
"claimText": "Topla",
|
||||
"codesExplainText": "Kodlar geliştirici tarafından sağlanır\nhesap sorunlarını teşhis edin ve düzeltin.",
|
||||
"completeThisLevelToProceedText": "İlerlemek için bu \nseviyeyi tamamlamalısınız!",
|
||||
"completionBonusText": "Tamamlama Bonusu",
|
||||
|
|
@ -505,7 +518,7 @@
|
|||
"totalText": "toplam",
|
||||
"tournamentInfoText": "Ligindeki diğer oyuncular arasında\nen yüksek skoru yap.\n\nÖdüller En fazla skor yapan oyuncular\narasında turnuva süresi bittiğinde verilir.",
|
||||
"welcome1Text": "${LEAGUE} hoş geldiniz. Lig sıralamanı turnuvalarda\nyıldız derecesi kazanarak, başarıları tamamlayarak\nve kupalar kazanarak geliştirebilirsin.",
|
||||
"welcome2Text": "Ayrıca benzer aktivitelerden biletler kazanabilirsin.\nBiletler yeni karakterler, haritalar, mini-oyunlar\nve turnuvalara katılmak için kulanılabilir.",
|
||||
"welcome2Text": "Ayrıca benzer aktivitelerden bilet kazanabilirsin.\nBiletler yeni karakterler, haritalar, mini-oyunlar\nve turnuvalara katılmak için kulanılabilir.",
|
||||
"yourPowerRankingText": "Oyuncu Sıralaman:"
|
||||
},
|
||||
"copyConfirmText": "Panoya kopyalandı.",
|
||||
|
|
@ -568,6 +581,7 @@
|
|||
"disableXInputDescriptionText": "4 kontrolcüden fazla kullanılabilir fakat iyi çalışmayabilir.",
|
||||
"disableXInputText": "XInput etkisizleştir",
|
||||
"disabledText": "Kullanılmıyor",
|
||||
"discardText": "İptal",
|
||||
"discordFriendsText": "Yeni oyuncular mı arıyorsun?\nDiscord sunucumuza katılarak yeni arkadaşlar edinebilirsin!",
|
||||
"discordJoinText": "Discord sunucumuza katıl",
|
||||
"doneText": "Tamam",
|
||||
|
|
@ -650,6 +664,8 @@
|
|||
"errorText": "Hata",
|
||||
"errorUnknownText": "bilinmeyen hata",
|
||||
"exitGameText": "Çık ${APP_NAME}?",
|
||||
"expiredAgoText": "${T} önce süresi doldu",
|
||||
"expiresInText": "${T} sonra süresi dolacak",
|
||||
"exportSuccessText": "'${NAME}' Dışa Aktarıldı.",
|
||||
"externalStorageText": "Harici Depolama",
|
||||
"failText": "Başarısızlık",
|
||||
|
|
@ -711,6 +727,7 @@
|
|||
"copyCodeConfirmText": "Kod panoya kopyalandı",
|
||||
"copyCodeText": "Kodu kopyala",
|
||||
"dedicatedServerInfoText": "En iyi sonuçlar için ozel sunucu ayarlayın. Bakınız; bombsquadgame.com/server",
|
||||
"descriptionShortText": "Lobi penceresini kullanarak bir parti oluştur.",
|
||||
"disconnectClientsText": "Bu, partindeki ${COUNT} oyuncunun bağlantısını\nkesecek. Emin misin ?",
|
||||
"earnTicketsForRecommendingAmountText": "Eğer arkadaşların oyunu denerler ise ${COUNT} bilet alacak\n(Sen ise bunu her yapan için ${YOU_COUNT} tane.)",
|
||||
"earnTicketsForRecommendingText": "Bedave bilet için\nOyunu paylaş...",
|
||||
|
|
@ -815,13 +832,19 @@
|
|||
"ticketsFromASponsorText": "${COUNT} Bilet için\nbir reklam izle",
|
||||
"ticketsText": "${COUNT} Bilet",
|
||||
"titleText": "Bilet Al",
|
||||
"unavailableLinkAccountText": "Üzgünüz, Satın almalar bu patformda kullanılamaz.\nBu geçici oldugu gibi, bu hesabını diğer platformlardaki\nhesablara bağlayabilir oradan satın alma işlemi yapbilirsin.",
|
||||
"unavailableLinkAccountText": "Üzgünüz, Satın almalar bu patformda kullanılamaz.\nBu geçici oldugu gibi, bu hesabını diğer platformlardaki\nhesaplara bağlayabilir oradan satın alma işlemi yapbilirsin.",
|
||||
"unavailableTemporarilyText": "Bu şu anda müsait değil; lütfen daha sonra tekrar deneyin.",
|
||||
"unavailableText": "Üzgünüz, Bu mümkün değil.",
|
||||
"versionTooOldText": "Üzgünüz, Oyunun bu sürümü çok eski; lütfen yeni bir sürüme güncelleyin.",
|
||||
"youHaveShortText": "${COUNT} Biletin var",
|
||||
"youHaveText": "${COUNT} biletin var"
|
||||
},
|
||||
"goldPass": {
|
||||
"desc1InfTokensText": "Sınırsız jeton.",
|
||||
"desc2NoAdsText": "Reklamları kaldır.",
|
||||
"desc3ForeverText": "Ebediyen.",
|
||||
"goldPassText": "Gold Pass"
|
||||
},
|
||||
"googleMultiplayerDiscontinuedText": "Üzgünüz, Google'ın çok oyunculu servisi şu anda çalışmıyor.\nBir yer değişimi için olabildiğince hızlı çalışıyorum.\nO zamana kadar, lütfen başka bir bağlantı yöntemi deneyin.\n-Eric",
|
||||
"googlePlayPurchasesNotAvailableText": "Google Play satın alma işlemleri mevcut değildir.\nMağaza uygulamanızı güncellemeniz gerekebilir.",
|
||||
"googlePlayServicesNotAvailableText": "Google Play Hizmetleri kullanılamıyor.\nBazı uygulama işlevleri devre dışı bırakılabilir.",
|
||||
|
|
@ -896,6 +919,7 @@
|
|||
"importText": "İçe Aktar",
|
||||
"importingText": "İçe Aktarılıyor...",
|
||||
"inGameClippedNameText": "Şöyle görünecek\n\"${NAME}\"",
|
||||
"inboxText": "Gelen kutusu",
|
||||
"installDiskSpaceErrorText": "HATA: Kurulum tamamlanamıyor.\nCihazınızda boş alan kalmamış olabilir.\nBiraz alan açın ve yeniden deneyin.",
|
||||
"internal": {
|
||||
"arrowsToExitListText": "Listeden çıkmak için ${LEFT} ya da ${RIGHT} basın.",
|
||||
|
|
@ -950,12 +974,14 @@
|
|||
"timeOutText": "(${TIME} saniye içinde süre dolacak)",
|
||||
"touchScreenJoinWarningText": "DokunmatikEkran ile katıldın.\nEğer yanlışlıkla olduysa 'Menü->Oyundan Ayrıl' ile düzelt.",
|
||||
"touchScreenText": "DokunmatikEkran",
|
||||
"unableToCompleteTryAgainText": "Şu anda bunu gerçekleştirmek mümkün değil.\nLütfen tekrar deneyin.",
|
||||
"unableToResolveHostText": "Hata: kurucu çözümlenemiyor.",
|
||||
"unavailableNoConnectionText": "Bu şu an kullanılamaz (internet bağlantısı yok?)",
|
||||
"vrOrientationResetCardboardText": "Bunu kullanmak için VR oryantasyonunu sıfırla.\nOyunu oynamak için harici kontrolcüye ihtiyacın olacak.",
|
||||
"vrOrientationResetText": "VR oryantasyonunu sıfırla.",
|
||||
"willTimeOutText": "(boşta durursa süre dolacak)"
|
||||
},
|
||||
"inventoryText": "Envanter",
|
||||
"jumpBoldText": "ZIPLA",
|
||||
"jumpText": "Zıpla",
|
||||
"keepText": "Koru",
|
||||
|
|
@ -1002,8 +1028,11 @@
|
|||
"seasonEndsMinutesText": "Sezon ${NUMBER} dakika içinde sonlanacak",
|
||||
"seasonText": "Sezon ${NUMBER}",
|
||||
"tournamentLeagueText": "Bu tunuvaya katılmak için ${NAME} olmalısın.",
|
||||
"trophyCountsResetText": "Kupalar bir sonraki sezon sıfırlanacak."
|
||||
"trophyCountsResetText": "Kupalar bir sonraki sezon sıfırlanacak.",
|
||||
"upToDateBonusDescriptionText": "En son sürümü çalıştıran oyuncular\n${PERCENT}% kadar bonus ödül alacak.",
|
||||
"upToDateBonusText": "Son-Sürüm Bonusu"
|
||||
},
|
||||
"learnMoreText": "Fazlasını öğren",
|
||||
"levelBestScoresText": "${LEVEL} En-İyi Skorlar",
|
||||
"levelBestTimesText": "${LEVEL} En-İyi Süreler",
|
||||
"levelIsLockedText": "${LEVEL} kilitli.",
|
||||
|
|
@ -1047,6 +1076,8 @@
|
|||
"modeArcadeText": "Arcade Modu",
|
||||
"modeClassicText": "Klasik Mod",
|
||||
"modeDemoText": "Demo Modu",
|
||||
"moreSoonText": "Daha fazlası yakında...",
|
||||
"mostDestroyedPlayerText": "En Çok Öldürülen Oyuncu",
|
||||
"mostValuablePlayerText": "En Değerli Oyuncu",
|
||||
"mostViolatedPlayerText": "En Çok Saldırılan Oyuncu",
|
||||
"mostViolentPlayerText": "En Saldırgan Oyuncu",
|
||||
|
|
@ -1063,6 +1094,7 @@
|
|||
"nameSuicideText": "${NAME} intihar etti.",
|
||||
"nameText": "İsim",
|
||||
"nativeText": "Gerçek",
|
||||
"newExclaimText": "Yeni!",
|
||||
"newPersonalBestText": "Yeni kişisel rekor!",
|
||||
"newTestBuildAvailableText": "Yeni bir test yapısı mevcut! (${VERSION} yapı ${BUILD}).\n${ADDRESS} buradan edinebilirsin",
|
||||
"newText": "Yeni",
|
||||
|
|
@ -1073,6 +1105,7 @@
|
|||
"noContinuesText": "(sürdürülemiyor)",
|
||||
"noExternalStorageErrorText": "Bu cihazda harici depolama bulunamadı",
|
||||
"noGameCircleText": "Hata: GameCircle girişi yapılamadı",
|
||||
"noMessagesText": "Mesaj yok.",
|
||||
"noPluginsInstalledText": "Yüklü Eklenti Yok",
|
||||
"noScoresYetText": "Henüz skor yok.",
|
||||
"noServersFoundText": "Sunucu Bulunamadı.",
|
||||
|
|
@ -1081,6 +1114,7 @@
|
|||
"noValidMapsErrorText": "Bu oyun tipi için geçerli harita bulunamadı.",
|
||||
"notEnoughPlayersRemainingText": "Yeterince oyuncu kalmadı; çık ve yeni bir oyun başlat.",
|
||||
"notEnoughPlayersText": "Bu oyunu başlatmak için en az ${COUNT} oyuncuya ihtiyacın var!",
|
||||
"notEnoughTicketsText": "Hiç biletin kalmadı",
|
||||
"notNowText": "Şimdi Değil",
|
||||
"notSignedInErrorText": "Bunu yapmak için giriş yapmalısın.",
|
||||
"notSignedInGooglePlayErrorText": "Bunu yapmak için Google Play ile giriş yapmalısın.",
|
||||
|
|
@ -1093,6 +1127,9 @@
|
|||
"onText": "Açık",
|
||||
"oneMomentText": "Bir dakika...",
|
||||
"onslaughtRespawnText": "${PLAYER} oyuncusu ${WAVE}. dalgada yeniden doğacak",
|
||||
"openMeText": "Aç Beni",
|
||||
"openNowText": "Şimdi Aç",
|
||||
"openText": "Aç",
|
||||
"orText": "${A} veya ${B}",
|
||||
"otherText": "Diğer...",
|
||||
"outOfText": "(${ALL} için #${RANK})",
|
||||
|
|
@ -1178,6 +1215,8 @@
|
|||
"punchText": "yumruk",
|
||||
"purchaseForText": "${PRICE} için Satın Al",
|
||||
"purchaseGameText": "Oyun Satın Al",
|
||||
"purchaseNeverAvailableText": "Üzgünüm, Satın alımlar bu sürümde mevcut değil.\nBaşka bir platformda profiline giriş yapmayı ve oradan satın alım yapmayı dene.",
|
||||
"purchaseNotAvailableText": "Bu satın alım mevcut değildir.",
|
||||
"purchasingText": "Satın Alınıyor...",
|
||||
"quitGameText": "Çık ${APP_NAME}?",
|
||||
"quittingIn5SecondsText": "5 saniye içinde çıkılacak...",
|
||||
|
|
@ -1219,6 +1258,7 @@
|
|||
"version_mismatch": "Versiyon uyuşmuyor.\nBombSquad ve BombSquad Remote'nin son \nsürüm olduğundan emin ol ve tekrar dene."
|
||||
},
|
||||
"removeInGameAdsText": "Oyun-içi reklamları kaldırmak için \"${PRO}\" kilidini mağazadan aç.",
|
||||
"removeInGameAdsTokenPurchaseText": "SINIRLI SÜRELİ TEKLİF: Oyun içi reklamları kaldırmak için HERHANGİ BİR jeton paketi satın alın.",
|
||||
"renameText": "Yeniden Adlandır",
|
||||
"replayEndText": "Tekrarı Kapat",
|
||||
"replayNameDefaultText": "Son Oyun Tekrarı",
|
||||
|
|
@ -1279,6 +1319,8 @@
|
|||
"enterPromoCodeText": "Kodu gir",
|
||||
"forTestingText": "Not: Bu değerler sadece test için ve uygulamadan çıkıldığında sıfırlanacak.",
|
||||
"helpTranslateText": "${APP_NAME}'ın İngilizce olmayan çevirileri topluluk yardımı ile\nyapılabilir. Katkı veya düzgün çeviri yapmak istiyorsan aşağıdaki\nbağlantıya tıkla. Şimdiden teşekkürler!",
|
||||
"insecureConnectionsDescriptionText": "önerilmez, sınırlı ülke ve bağlantılarda\noynamanı sağlar",
|
||||
"insecureConnectionsText": "Güvensiz bağlantılar kullan",
|
||||
"kickIdlePlayersText": "Boştaki oyuncuları çıkar",
|
||||
"kidFriendlyModeText": "Çoçuk Modu (Azaltılmış şiddet, vb)",
|
||||
"languageText": "Dil",
|
||||
|
|
@ -1339,6 +1381,7 @@
|
|||
},
|
||||
"spaceKeyText": "boşluk",
|
||||
"statsText": "İstatistikler",
|
||||
"stopRemindingMeText": "Bana hatırlatma",
|
||||
"storagePermissionAccessText": "Bu depolama erişimine ihtiyaç duyuyor",
|
||||
"store": {
|
||||
"alreadyOwnText": "${NAME} zaten sende var!",
|
||||
|
|
@ -1398,6 +1441,7 @@
|
|||
"testBuildValidatedText": "Test Yapısı Onaylandı; Keyfinı Çıkar!",
|
||||
"thankYouText": "Desteğin için teşekkürler! Oyunun tadını çıkar!!",
|
||||
"threeKillText": "ÜÇLÜ ÖLÜM!!",
|
||||
"ticketsDescriptionText": "Biletler karakterler haritalar, mini oyunlar ve daha \nfazlasının kilidini açmak için mağazada kullanılabilir.\n\nBiletler mücadele , turnuvalar ve başarılarla \nkazanılan sandıklardan çıkabilir.",
|
||||
"timeBonusText": "Süre Bonusu",
|
||||
"timeElapsedText": "Geçen Süre",
|
||||
"timeExpiredText": "Süre Doldu",
|
||||
|
|
@ -1408,10 +1452,24 @@
|
|||
"tipText": "İpucu",
|
||||
"titleText": "BombSquad",
|
||||
"titleVRText": "BombSquad VR",
|
||||
"tokens": {
|
||||
"getTokensText": "Jeton al",
|
||||
"notEnoughTokensText": "Yeterli jetonun yok!",
|
||||
"numTokensText": "${COUNT} Jeton",
|
||||
"openNowDescriptionText": "Sandığı açmak için yeterince\njetonun var - beklemene\ngerek yok.",
|
||||
"shinyNewCurrencyText": "BombSquad'ın parlak yeni para birimi.",
|
||||
"tokenPack1Text": "Küçük Jeton Paketi",
|
||||
"tokenPack2Text": "Orta Jeton Paketi",
|
||||
"tokenPack3Text": "Büyük Jeton Paketi",
|
||||
"tokenPack4Text": "Kocaman Jeton Paketi",
|
||||
"tokensDescriptionText": "Jetonlar, sandık kilitlerinin açılmasını hızlandırmak ve \ndiğer oyun ve hesap özellikleri için kullanılır.\n\nOyunda jeton kazanabilir veya jeton paketleri satın \nalabilirsiniz. Veya Gold Pass'i alıp, sonsuz jetonun \nkeyfini çıkarır ve bir daha asla endişelenmezsiniz.",
|
||||
"youHaveGoldPassText": "Bir Gold Pass'in var.\nTüm Jeton satın alımları ücretsiz.\nKeyfini çıkar!"
|
||||
},
|
||||
"topFriendsText": "En İyi Arkadaşlar",
|
||||
"tournamentCheckingStateText": "Turnuva durumu denetleniyor; lütfen bekleyin...",
|
||||
"tournamentEndedText": "Bu turnuva sonlandı. Yeni bir tanesi yakında başlayacak.",
|
||||
"tournamentEntryText": "Turnuva Katılımı",
|
||||
"tournamentFinalStandingsText": "Son Sıralama",
|
||||
"tournamentResultsRecentText": "Son Turnıva Sonuçları",
|
||||
"tournamentStandingsText": "Turnuva Kazananları",
|
||||
"tournamentText": "Turnuva",
|
||||
|
|
@ -1467,6 +1525,18 @@
|
|||
"Uber Onslaught": "Üst Düzey Saldırı",
|
||||
"Uber Runaround": "Üst Düzey Dolambaç"
|
||||
},
|
||||
"displayItemNames": {
|
||||
"${C} Tickets": "${C} Bilet",
|
||||
"${C} Tokens": "${C} Jeton",
|
||||
"Chest": "Sandık",
|
||||
"L1 Chest": "S1 Sandık",
|
||||
"L2 Chest": "S2 Sandık",
|
||||
"L3 Chest": "S3 Sandık",
|
||||
"L4 Chest": "S4 Sandık",
|
||||
"L5 Chest": "S5 Sandık",
|
||||
"L6 Chest": "S6 Sandık",
|
||||
"Unknown Chest": "Bilinmeyen Sandık"
|
||||
},
|
||||
"gameDescriptions": {
|
||||
"Be the chosen one for a length of time to win.\nKill the chosen one to become it.": "Kazanmak için uzun süre seçilmiş kişi ol.\nseçilmiş kişi olmak için seçilmiş kişiyi öldür.",
|
||||
"Bomb as many targets as you can.": "Yapabildiğin kadar hedefi bombala.",
|
||||
|
|
@ -1571,6 +1641,7 @@
|
|||
"Korean": "Korece",
|
||||
"Malay": "Malayca",
|
||||
"Persian": "Farsça",
|
||||
"PirateSpeak": "Korsan Dili",
|
||||
"Polish": "Polonya Dili",
|
||||
"Portuguese": "Portekizce",
|
||||
"Romanian": "Romence",
|
||||
|
|
@ -1642,6 +1713,7 @@
|
|||
"Cheating detected; scores and prizes suspended for ${COUNT} days.": "Hile algılandı; skorlar ve ödüller ${COUNT} gün için askıya alındı.",
|
||||
"Could not establish a secure connection.": "Güvenli bir bağlantı sağlanamadı.",
|
||||
"Daily maximum reached.": "Günlük sınıra ulaşıldı.",
|
||||
"Daily sign-in reward": "Günlük giriş ödülü",
|
||||
"Entering tournament...": "Turnuvaya giriliyor...",
|
||||
"Invalid code.": "Geçersiz kod.",
|
||||
"Invalid payment; purchase canceled.": "Geçersiz ödeme; satın alma iptal edildi.",
|
||||
|
|
@ -1651,11 +1723,14 @@
|
|||
"Item unlocked!": "Öğe kilidi açıldı!",
|
||||
"LINKING DENIED. ${ACCOUNT} contains\nsignificant data that would ALL BE LOST.\nYou can link in the opposite order if you'd like\n(and lose THIS account's data instead)": "EŞLEŞTİRME ENGELLENDİ ${ACCOUNT}\nhesabının önemli verilerinin tümü kayıp olacak!\nKarşı taraftan eşleştirme yapabilirsiniz\n(Ve verileriniz kayıp olmaz)",
|
||||
"Link account ${ACCOUNT} to this account?\nAll existing data on ${ACCOUNT} will be lost.\nThis can not be undone. Are you sure?": "${ACCOUNT} hesabı bu hesaba bağlansın mı?\n${ACCOUNT} hesabı üzerindeki tüm mevcut veriler kaybolacak.\nBu işlem geri alınamaz. Emin misiniz?",
|
||||
"Longer streaks lead to better rewards.": "Daha uzun seriler daha iyi ödüller verir.",
|
||||
"Max number of playlists reached.": "Maksimum çalmaListesine ulaşıldı.",
|
||||
"Max number of profiles reached.": "Profiller için maksimum sayıya ulaşıldı.",
|
||||
"Maximum friend code rewards reached.": "Arkadaş kodu maksimuma ulaştı.",
|
||||
"Message is too long.": "Mesaj çok uzun.",
|
||||
"New tournament result!": "Yeni turnuva sonucu!",
|
||||
"No servers are available. Please try again soon.": "Kullanılabilir sunucu yok. Lütfen kısa süre sonra tekrar deneyin.",
|
||||
"No slots available. Free a slot and try again.": "Boş yuva mevcut değil. Bir yuva boşaltın ve tekrar deneyin.",
|
||||
"Profile \"${NAME}\" upgraded successfully.": "\"${NAME}\" Profili başarı ile yükseltildi.",
|
||||
"Profile could not be upgraded.": "Profil yükseltilemedi.",
|
||||
"Purchase successful!": "Satın Alma Başarılı!",
|
||||
|
|
@ -1665,7 +1740,9 @@
|
|||
"Sorry, this code has already been used.": "Üzgünüz, bu kod zaten kullanılmış.",
|
||||
"Sorry, this code has expired.": "Üzgünüz, Bu kodun süresi doldu.",
|
||||
"Sorry, this code only works for new accounts.": "Üzgünüz, bu kod yalnızca yeni hesaplar için çalışır.",
|
||||
"Sorry, this has expired.": "Maalesef, bunun süresi dolmuş.",
|
||||
"Still searching for nearby servers; please try again soon.": "Hala yakındaki sunucuları arıyor; lütfen kısa süre sonra tekrar deneyin.",
|
||||
"Streak: ${NUM} days": "Seri: ${NUM} gün",
|
||||
"Temporarily unavailable; please try again later.": "Geçici olarak kullanım dışı; lütfen daha sonra tekrar deneyiniz.",
|
||||
"The tournament ended before you finished.": "Sen bitiremeden turnuva sona erdi.",
|
||||
"This account cannot be unlinked for ${NUM} days.": "Bu hesap, ${NUM} gün boyunca kaldırılamaz.",
|
||||
|
|
@ -1676,19 +1753,28 @@
|
|||
"Tournaments require ${VERSION} or newer": "Turnuvalar ${VERSION} veya daha yeni bir sürümü gerektirir",
|
||||
"Unlink ${ACCOUNT} from this account?\nAll data on ${ACCOUNT} will be reset.\n(except for achievements in some cases)": "${ACCOUNT} hesabının bağlantısını kaldırmak mı istiyorsunuz?\n${ACCOUNT} hesabı üzerindeki tüm veriler sıfırlanacak.\n(bazı durumlarda başarılar hariç)",
|
||||
"WARNING: complaints of hacking have been issued against your account.\nAccounts found to be hacking will be banned. Please play fair.": "UYARI: Hesabınız hile kullanımı nedeniyle şikayet edilmiştir.\nHile kullanıldığı tespit edilen hesaplar yasaklanacaktır. Lütfen adil oyna.",
|
||||
"Wait reduced!": "Bekleme azaldı!",
|
||||
"Warning: This version of the game is limited to old account data; things may appear missing or out of date.\nPlease upgrade to a newer version of the game to see your latest account data.": "Uyarı: Oyunun bu sürümü eski hesap verileriyle sınırlıdır; bazı şeyler eksik veya güncelliğini yitirmiş görünebilir.\nLütfen en son hesap verilerinizi görmek için oyunun daha yeni bir sürümüne yükseltin.",
|
||||
"Would you like to link your device account to this one?\n\nYour device account is ${ACCOUNT1}\nThis account is ${ACCOUNT2}\n\nThis will allow you to keep your existing progress.\nWarning: this cannot be undone!\n": "Cihaz hesabınızı bununla bağlamak istermisiniz?\n\nCihaz hesabınız: ${ACCOUNT1}\nBu hesap: ${ACCOUNT2}\n\nUlaştığın ilerlemeler saklanacak.\nUyarı: Bu işlem geri alınamaz!",
|
||||
"You already own this!": "Buna zaten sahipsin!",
|
||||
"You can join in ${COUNT} seconds.": "\"${COUNT}\" saniye içinde katılabilirsin.",
|
||||
"You don't have enough tickets for this!": "Bunun için yeterince biletiniz yok!",
|
||||
"You don't own that.": "Buna sahip değilsin.",
|
||||
"You got ${COUNT} tickets!": "${COUNT} Bilet kazandınız!",
|
||||
"You got ${COUNT} tokens!": "${COUNT} jeton kazandın!",
|
||||
"You got a ${ITEM}!": "Bir ${ITEM} kazandınız!",
|
||||
"You got a chest!": "Sandık kazandın!",
|
||||
"You got an achievement reward!": "Başarı ödülü kazandın!",
|
||||
"You have been promoted to a new league; congratulations!": "Yeni bir lige terfi ettin; tebrikler!",
|
||||
"You lost a chest! (All your chest slots were full)": "Bir sandık kaybettin! (Tüm sandık yuvaların doluydu)",
|
||||
"You must update the app to view this.": "Bunu görmek için oyunu güncellemen gerekli.",
|
||||
"You must update to a newer version of the app to do this.": "Bunu yapmak için uygulamayı yeni bir sürüme güncellemelisin.",
|
||||
"You must update to the newest version of the game to do this.": "Bunu yapmak için oyunun en yeni sürümüne güncellemelisiniz.",
|
||||
"You must wait a few seconds before entering a new code.": "Yeni bir kod girmeden önce biraz beklemelisin.",
|
||||
"You placed #${RANK} in a tournament!": "Bir turnuvada #${RANK} sırada yer aldın!",
|
||||
"You ranked #${RANK} in the last tournament. Thanks for playing!": "Son turnuvada #${RANK}. oldun. Oynadığın için teşekkürler!",
|
||||
"Your account was rejected. Are you signed in?": "Hesabın reddedildi. Oturum açtın mı?",
|
||||
"Your ad views are not registering. Ad options will be limited for a while.": "Reklam bilgilerin kayıt altına alınamıyor. Reklam seçeneklerin bir sürelik kısıtlanacak.",
|
||||
"Your copy of the game has been modified.\nPlease revert any changes and try again.": "Oyununun kopyası modifiye edilmiş.\nLütfen eski haline döndürüp tekrar deneyin.",
|
||||
"Your friend code was used by ${ACCOUNT}": "Arkadaş kodun ${ACCOUNT} tarafından kullanılmış"
|
||||
},
|
||||
|
|
@ -1839,6 +1925,7 @@
|
|||
"twoKillText": "ÇİFTE ÖLÜM!",
|
||||
"uiScaleText": "UI Boyutu",
|
||||
"unavailableText": "mevcut değil",
|
||||
"unclaimedPrizesText": "Alınmamış ödüllerin var!",
|
||||
"unconfiguredControllerDetectedText": "Yapılandırılmamış kontrolcü tespit edildi:",
|
||||
"unlockThisInTheStoreText": "Bunun mağazada kilidi açık olmalı.",
|
||||
"unlockThisProfilesText": "${NUM} taneden daha fazla profil yaratmak için ihtiyacın olan:",
|
||||
|
|
@ -1857,6 +1944,7 @@
|
|||
"usingItunesText": "Müzikler için iTunes kullanılıyor...",
|
||||
"usingItunesTurnRepeatAndShuffleOnText": "Lütfen iTunes da karıştırmanın KAPALI oldugundan ve Yinelemenin TÜM oldugundan emin olun. ",
|
||||
"v2AccountLinkingInfoText": "V2 hesapları bağlamak için, 'Hesabı yönet' butonuna tıklayın.",
|
||||
"v2AccountRequiredText": "Bu bir V2 hesap gerektirir. Hesabını yükseltip tekrar dene.",
|
||||
"validatingTestBuildText": "Test Yapısı Onaylanıyor...",
|
||||
"viaText": "Böyle de bilinir",
|
||||
"victoryText": "Galibiyet!",
|
||||
|
|
@ -1902,7 +1990,7 @@
|
|||
"wiimoteSetupWindow": {
|
||||
"copyrightText": "DarwiinRemote TelifHakkı",
|
||||
"listenText": "Dinle",
|
||||
"macInstructionsText": "Wii nin kapalı olduğundan ve 'Dinle'ye bastığında\nMac'inde Bluetooth'un açık olduğundan emin ol.Wii\ndesteği biraz tuhaftır bu yüzden bağlanmadan önce\nbirkaç kere denemelisin.\n\nBluetooth çeşitli uzaklıklardan 7 cihaza\nkadar destek verir.\n\nBombSquad Orijinal Wiimoteleri Nunchukslari ve\nKlasik Kontrolcüleri destekler.\nYeni Wii Remote Plus'da şuanda çalışıyor\nfakat eklenmiş değil.",
|
||||
"macInstructionsText": "Wii nin kapalı olduğundan ve 'Dinle'ye bastığında\nMac'inde Bluetooth'un açık olduğundan emin ol.Wii\ndesteği biraz tuhaftır bu yüzden bağlanmadan önce\nbirkaç kere denemelisin.\n\nBluetooth çeşitli uzaklıklardan 7 cihaza\nkadar destek verir.\n\nBombSquad Orijinal Wiimoteleri Nunchukslari ve\nKlasik Kontrolcüleri destekler.\nYeni Wii Remote Plus'da şuanda çalışıyor\nfakat eklenmiş değil. ",
|
||||
"thanksText": "DarwiinRemote takımına bunu mümkün\nkıldığı için teşekkürler.",
|
||||
"titleText": "Wiimote Kurulumu"
|
||||
},
|
||||
|
|
@ -1924,5 +2012,6 @@
|
|||
},
|
||||
"yesAllowText": "Evet, Kabul!",
|
||||
"yourBestScoresText": "En İyi Skorların",
|
||||
"yourBestTimesText": "En İyi Sürelerin"
|
||||
"yourBestTimesText": "En İyi Sürelerin",
|
||||
"yourPrizeText": "Ödülün:"
|
||||
}
|
||||
104
dist/ba_data/data/languages/ukrainian.json
vendored
104
dist/ba_data/data/languages/ukrainian.json
vendored
|
|
@ -7,7 +7,9 @@
|
|||
"campaignProgressText": "Прогрес кампанії [Тяжко]: ${PROGRESS}",
|
||||
"changeOncePerSeason": "Ви можете змінити це лише раз в сезон.",
|
||||
"changeOncePerSeasonError": "Ви повинні дочекатися наступного сезону, щоб змінити це знову (${NUM} днів)",
|
||||
"createAnAccountText": "Створити Акаунт",
|
||||
"customName": "Ім'я акаунта",
|
||||
"deleteAccountText": "Видалити аккаунт",
|
||||
"googlePlayGamesAccountSwitchText": "Якщо ви хочете використовувати інший акаунт Google,\nперейдіть у додаток Google Play Games, щоб змінити його.",
|
||||
"linkAccountsEnterCodeText": "Ввести Код",
|
||||
"linkAccountsGenerateCodeText": "Створити Код",
|
||||
|
|
@ -25,6 +27,7 @@
|
|||
"setAccountNameDesc": "Виберіть ім'я для відображення свого акаунту.\nВи можете використовувати ім'я одного з ваших прив'язаних\nакаунтів або створити своє унікальне ім'я.",
|
||||
"signInInfoText": "Увійдіть, щоб збирати квитки, змагатися онлайн,\nі синхронізувати прогрес між пристроями.",
|
||||
"signInText": "Увійти",
|
||||
"signInWithAnEmailAddressText": "Увійдіть за допомогою електронної адреси",
|
||||
"signInWithDeviceInfoText": "(для цього пристрою доступний тільки стандартний акаунт)",
|
||||
"signInWithDeviceText": "Увійти використовуючи акаунт пристрою",
|
||||
"signInWithGameCircleText": "Увійти через Game Circle",
|
||||
|
|
@ -33,7 +36,7 @@
|
|||
"signInWithTestAccountText": "Увійти через тестовий акаунт",
|
||||
"signInWithText": "Увійти за допомогою ${SERVICE}",
|
||||
"signInWithV2InfoText": "(обліковий запис, який працює на всіх платформах)",
|
||||
"signInWithV2Text": "Увійдіть за допомогою облікового запису BombSquad",
|
||||
"signInWithV2Text": "Увійдіть за допомогою облікового запису ${APP_NAME}",
|
||||
"signOutText": "Вийти",
|
||||
"signingInText": "Вхід…",
|
||||
"signingOutText": "Вихід…",
|
||||
|
|
@ -343,6 +346,8 @@
|
|||
"allowText": "Дозволити",
|
||||
"alreadySignedInText": "На вашому акаунті грають на іншому пристрої;\nбудь ласка зайдіть з іншого акаунта або закрийте гру на\nіншому пристрої та спробуйте знову.",
|
||||
"apiVersionErrorText": "Неможливо завантажити модуль ${NAME}; він призначений для API версії ${VERSION_USED}; потрібна версія ${VERSION_REQUIRED}.",
|
||||
"applyText": "Застосувати",
|
||||
"areYouSureText": "Ти впевнений?",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(Режим \"Auto\" включайте його тільки коли підключені навушники)",
|
||||
"headRelativeVRAudioText": "Позиційно-залежне VR-аудіо",
|
||||
|
|
@ -364,14 +369,23 @@
|
|||
"boostText": "Підсилення",
|
||||
"bsRemoteConfigureInAppText": "${REMOTE_APP_NAME} налаштовується в самому додатку.",
|
||||
"buttonText": "кнопка",
|
||||
"canWeDebugText": "Хочете, щоб BombSquad автоматично повідомляв розробнику\nпро помилки, збої і основну інформацію про використання?\n\nЦі дані не містять ніякої особистої інформації і допомагають\nпідтримувати гру в робочому стані без збоїв і помилок.",
|
||||
"canWeDebugText": "Хочете, щоб ${APP_NAME} автоматично повідомляв розробнику\nпро помилки, збої і основну інформацію про використання?\n\nЦі дані не містять ніякої особистої інформації і допомагають\nпідтримувати гру в робочому стані без збоїв і помилок.",
|
||||
"cancelText": "Скасувати",
|
||||
"cantConfigureDeviceText": "Вибачте, ${DEVICE} неможливо налаштувати.",
|
||||
"challengeEndedText": "Це змагання завершено.",
|
||||
"chatMuteText": "Приглушити чат",
|
||||
"chatMutedText": "Чат приглушений",
|
||||
"chatUnMuteText": "Включити чат",
|
||||
"chests": {
|
||||
"prizeOddsText": "Ймовірність Виграшу",
|
||||
"reduceWaitText": "Скоротити час",
|
||||
"slotDescriptionText": "У цій комірці може бути скриня.\n\nЗаробляй скрині граючи в рівні кампанії,\nпосідаючи місця в турнірах та виконуючи\nдосягнення.",
|
||||
"slotText": "Комірка для Скрині ${NUM}",
|
||||
"slotsFullWarningText": "ЗАСТЕРЕЖЕННЯ: Усі комірки заповнені скринями.\nСкрині, що ти заробиш цієї гри, буде втрачено.",
|
||||
"unlocksInText": "Відкривається Через"
|
||||
},
|
||||
"choosingPlayerText": "<вибір гравця>",
|
||||
"claimText": "Забрати",
|
||||
"codesExplainText": "Розробник надає коди для діагностики та\nусунення проблем з обліковим записом.",
|
||||
"completeThisLevelToProceedText": "Щоб продовжити, потрібно\nпройти цей рівень!",
|
||||
"completionBonusText": "Бонус за проходження",
|
||||
|
|
@ -568,6 +582,7 @@
|
|||
"disableXInputDescriptionText": "Підключення більше 4 контролерів, але може не працювати.",
|
||||
"disableXInputText": "Відключити XInput",
|
||||
"disabledText": "Виключено",
|
||||
"discardText": "Відкинути",
|
||||
"discordFriendsText": "Хочете шукати нових людей для гри?\nПриєднуйтесь до нашого Discord і знайдіть нових друзів!",
|
||||
"discordJoinText": "Приєднуйтесь до Discord",
|
||||
"doneText": "Готово",
|
||||
|
|
@ -650,6 +665,8 @@
|
|||
"errorText": "Помилка",
|
||||
"errorUnknownText": "невідома помилка",
|
||||
"exitGameText": "Вийти з ${APP_NAME}?",
|
||||
"expiredAgoText": "Закінчився ${T} тому",
|
||||
"expiresInText": "Закінчується через ${T}",
|
||||
"exportSuccessText": "'${NAME}' експортовано.",
|
||||
"externalStorageText": "Зовнішня пам'ять",
|
||||
"failText": "Провал",
|
||||
|
|
@ -711,6 +728,7 @@
|
|||
"copyCodeConfirmText": "Код скопійовано до буферу обміну",
|
||||
"copyCodeText": "Скопіювати код",
|
||||
"dedicatedServerInfoText": "Для кращого результату створіть окремий сервер. Дивись bombsquadgame.com/server",
|
||||
"descriptionShortText": "",
|
||||
"disconnectClientsText": "Це відключить ${COUNT} гравців\nУ вашому лобі. Ви впевнені?",
|
||||
"earnTicketsForRecommendingAmountText": "Друзі отримають ${COUNT} квитки, якщо вони спробують гру \n(і ви будете отримувати ${YOU_COUNT} для кожного, це зробить)",
|
||||
"earnTicketsForRecommendingText": "Поділися грою\nОтримай квитки ...",
|
||||
|
|
@ -723,10 +741,10 @@
|
|||
"friendHasSentPromoCodeText": "${COUNT} ${APP_NAME} квитків від ${NAME}",
|
||||
"friendPromoCodeAwardText": "Ви отримаєте ${COUNT} квитків за кожну активацію.",
|
||||
"friendPromoCodeExpireText": "Код дійсний протягом ${EXPIRE_HOURS} годин і тільки для нових гравців.",
|
||||
"friendPromoCodeInstructionsText": "Для активації в ${APP_NAME} зайдіть в \"Налаштування->Додатково->Ввести код\".\nЗнайди на bombsquadgame.com версію гри для своєї платформи.",
|
||||
"friendPromoCodeInstructionsText": "Щоб скористатися ним, відкрийте ${APP_NAME} і перейдіть у «Налаштування->Додатково->Надіслати інформацію».\nПосилання для завантаження для всіх підтримуваних платформ дивіться на bombsquadgame.com.",
|
||||
"friendPromoCodeRedeemLongText": "Кожна активація приносить ${COUNT} квитків до ${MAX_USES} гравцям.",
|
||||
"friendPromoCodeRedeemShortText": "Він принесе ${COUNT} квитків в грі.",
|
||||
"friendPromoCodeWhereToEnterText": "(В \"Налаштування->Додатково->Ввести код\")",
|
||||
"friendPromoCodeWhereToEnterText": "(у \"Налаштування->Додатково->Надіслати інформацію\")",
|
||||
"getFriendInviteCodeText": "Отримати промо-код",
|
||||
"googlePlayDescriptionText": "Запросити гравців Google Play в ваше лобі:",
|
||||
"googlePlayInviteText": "Запросити",
|
||||
|
|
@ -822,6 +840,12 @@
|
|||
"youHaveShortText": "у вас ${COUNT}",
|
||||
"youHaveText": "У вас ${COUNT} квитків"
|
||||
},
|
||||
"goldPass": {
|
||||
"desc1InfTokensText": "Нескінченні жетони.",
|
||||
"desc2NoAdsText": "Без реклами.",
|
||||
"desc3ForeverText": "Назавжди.",
|
||||
"goldPassText": "золотий пропуск"
|
||||
},
|
||||
"googleMultiplayerDiscontinuedText": "Пробачте, але сервіс мультіплеєра від Google тепер не доступний.\nЯ працюю над зміною сервіса як можно скоріше.\nДо цього, будь ласка, подивіться інакші способи гри в мультіплеєр. \n-Ерік",
|
||||
"googlePlayPurchasesNotAvailableText": "Покупки в Google Play недоступні.\nМожливо, вам знадобиться оновити програму магазину.",
|
||||
"googlePlayServicesNotAvailableText": "Google Play сервіси недоступні.\nДеякі функції програми не роблять.",
|
||||
|
|
@ -896,6 +920,7 @@
|
|||
"importText": "Імпорт",
|
||||
"importingText": "Імпортую...",
|
||||
"inGameClippedNameText": "У грі буде\n\"${NAME}\"",
|
||||
"inboxText": "Вхідні",
|
||||
"installDiskSpaceErrorText": "ПОМИЛКА: не вдалося завершити встановлення. \nМоже не вистачає вільного місця на вашому \nпристрої. Звільніть місце та спробуйте ще раз.",
|
||||
"internal": {
|
||||
"arrowsToExitListText": "Щоб вийти зі списку натисніть ${LEFT} або ${RIGHT}",
|
||||
|
|
@ -950,12 +975,14 @@
|
|||
"timeOutText": "(залишилося ${TIME} секунд)",
|
||||
"touchScreenJoinWarningText": "Ви приєдналися з сенсорним екраном.\nЯкщо це була помилка, натисніть 'Меню->Покинути гру'.",
|
||||
"touchScreenText": "Сенсорний екран",
|
||||
"unableToCompleteTryAgainText": "Не в змозі завершити це зараз.\nСпробуй ще раз, будь ласка.",
|
||||
"unableToResolveHostText": "Помилка: неможливо досягти хоста.",
|
||||
"unavailableNoConnectionText": "Зараз це недоступно (немає інтернет з'єднання?)",
|
||||
"vrOrientationResetCardboardText": "Використовуйте це, щоб скинути орієнтацію VR.\nЩоб грати в гру вам буде потрібен зовнішній контролер.",
|
||||
"vrOrientationResetText": "Скидання орієнтації VR.",
|
||||
"willTimeOutText": "(час вийде при бездіяльності)"
|
||||
},
|
||||
"inventoryText": "Інтвентар",
|
||||
"jumpBoldText": "СТРИБОК",
|
||||
"jumpText": "Стрибнути",
|
||||
"keepText": "Залишити",
|
||||
|
|
@ -1002,8 +1029,11 @@
|
|||
"seasonEndsMinutesText": "Сезон завершиться через ${NUMBER} хвилин.",
|
||||
"seasonText": "Сезон ${NUMBER}",
|
||||
"tournamentLeagueText": "Щоб брати участь в цьому турнірі, ви повинні досягти ліги ${NAME}.",
|
||||
"trophyCountsResetText": "Трофеї будуть скинуті в наступному сезоні."
|
||||
"trophyCountsResetText": "Трофеї будуть скинуті в наступному сезоні.",
|
||||
"upToDateBonusDescriptionText": "Гравці, що використовують останню версію гри,\nотримають ${PERCENT}% бонус",
|
||||
"upToDateBonusText": "Бонус Прогресу"
|
||||
},
|
||||
"learnMoreText": "Вивчайте більше",
|
||||
"levelBestScoresText": "Кращий рекорд на ${LEVEL}",
|
||||
"levelBestTimesText": "Кращий час на ${LEVEL}",
|
||||
"levelIsLockedText": "${LEVEL} заблокований.",
|
||||
|
|
@ -1047,6 +1077,8 @@
|
|||
"modeArcadeText": "Аркадний режим",
|
||||
"modeClassicText": "Класичний режим",
|
||||
"modeDemoText": "Демо режим",
|
||||
"moreSoonText": "Незабаром буде більше..",
|
||||
"mostDestroyedPlayerText": "Найбільш Побитий Гравець",
|
||||
"mostValuablePlayerText": "Найцінніший гравець",
|
||||
"mostViolatedPlayerText": "Самий побитий гравець",
|
||||
"mostViolentPlayerText": "Самий буйний гравець",
|
||||
|
|
@ -1063,6 +1095,7 @@
|
|||
"nameSuicideText": "${NAME} скоїв суїцид.",
|
||||
"nameText": "Ім'я",
|
||||
"nativeText": "Власний",
|
||||
"newExclaimText": "Новинка!",
|
||||
"newPersonalBestText": "Новий особистий рекорд!",
|
||||
"newTestBuildAvailableText": "Доступна нова тестова версія! (${VERSION} збірка ${BUILD}).\nОновити: ${ADDRESS}",
|
||||
"newText": "Новий",
|
||||
|
|
@ -1073,6 +1106,7 @@
|
|||
"noContinuesText": "(без продовжень)",
|
||||
"noExternalStorageErrorText": "На цьому пристрої не знайдено зовнішньої пам'яті",
|
||||
"noGameCircleText": "Помилка: не ввійшли в GameCircle",
|
||||
"noMessagesText": "Немає повідомлень.",
|
||||
"noPluginsInstalledText": "Плагіни не встановлено",
|
||||
"noScoresYetText": "Рахунка поки немає.",
|
||||
"noServersFoundText": "Серверів не знайдено",
|
||||
|
|
@ -1081,6 +1115,7 @@
|
|||
"noValidMapsErrorText": "Для даного типу гри не знайдено коректних карт.",
|
||||
"notEnoughPlayersRemainingText": "Залишилося недостатньо гравців; вийдіть і почніть нову гру.",
|
||||
"notEnoughPlayersText": "Для початку цієї гри потрібно як мінімум ${COUNT} гравця!",
|
||||
"notEnoughTicketsText": "Не вистачає квитків!",
|
||||
"notNowText": "Не зараз",
|
||||
"notSignedInErrorText": "Увійдіть щоб зробити це.",
|
||||
"notSignedInGooglePlayErrorText": "Увійдіть спочатку в Google Play, а там подивимося.",
|
||||
|
|
@ -1093,6 +1128,9 @@
|
|||
"onText": "Вкл",
|
||||
"oneMomentText": "Хвилинку...",
|
||||
"onslaughtRespawnText": "${PLAYER} відродиться в ${WAVE} хвилі",
|
||||
"openMeText": "Відкрий Мене!",
|
||||
"openNowText": "Відчинити зараз",
|
||||
"openText": "Відчинити",
|
||||
"orText": "${A} або ${B}",
|
||||
"otherText": "Інші...",
|
||||
"outOfText": "(${RANK} з ${ALL})",
|
||||
|
|
@ -1178,6 +1216,8 @@
|
|||
"punchText": "Вдарити",
|
||||
"purchaseForText": "Купити за ${PRICE}",
|
||||
"purchaseGameText": "Купити гру",
|
||||
"purchaseNeverAvailableText": "На жаль, покупки недоступні для цієї збірки.\nСпробуйте ввійти у свій обліковий запис на іншій платформі та робити покупки звідти.",
|
||||
"purchaseNotAvailableText": "Ця покупка недоступна.",
|
||||
"purchasingText": "Покупка...",
|
||||
"quitGameText": "Вийти з ${APP_NAME}?",
|
||||
"quittingIn5SecondsText": "Вихід через 5 секунд...",
|
||||
|
|
@ -1219,6 +1259,7 @@
|
|||
"version_mismatch": "Розбіжність версій.\nПереконайтеся, що BombSquad і контролер BombSquad Remote\nоновлені до останньої версії і спробуйте ще раз."
|
||||
},
|
||||
"removeInGameAdsText": "Розблокуйте \"${PRO}\" в магазині, щоб прибрати рекламу в грі.",
|
||||
"removeInGameAdsTokenPurchaseText": "ОБМЕЖЕНА ЧАСОМ ПРОПОЗИЦІЯ: Придбай БУДЬ-ЯКИЙ набір жетонів, аби вилучити рекламу з гри.",
|
||||
"renameText": "Перейменувати",
|
||||
"replayEndText": "Завершити перегляд повтору",
|
||||
"replayNameDefaultText": "Повтор останньої гри",
|
||||
|
|
@ -1270,6 +1311,7 @@
|
|||
"alwaysUseInternalKeyboardDescriptionText": "(проста, зручна для контролера віртуальна клавіатура для введення тексту)",
|
||||
"alwaysUseInternalKeyboardText": "Завжди використовуйте внутрішню клавіатуру",
|
||||
"benchmarksText": "Тест продуктивності і навантаження",
|
||||
"devToolsText": "Інструменти розробника",
|
||||
"disableCameraGyroscopeMotionText": "Вимкнути рух гіроскопа камери",
|
||||
"disableCameraShakeText": "Вимкнути тремтіння камери",
|
||||
"disableThisNotice": "(ви можете відключити це повідомлення в налаштуваннях)",
|
||||
|
|
@ -1278,6 +1320,8 @@
|
|||
"enterPromoCodeText": "Ввести код",
|
||||
"forTestingText": "Примітка: ці значення використовуються тільки для тестування і будуть втрачені, коли додаток завершить роботу.",
|
||||
"helpTranslateText": "Переклади гри ${APP_NAME} з англійської зроблені спільнотою. \nЯкщо ви хочете запропонувати або виправити переклад, \nПерейдіть за посиланню нижче. Заздалегідь дякую!",
|
||||
"insecureConnectionsDescriptionText": "не рекомендується, але може дозволити онлайн-гру\nз країн або мереж з обмеженим доступом",
|
||||
"insecureConnectionsText": "Використання ненадійних з'єднань",
|
||||
"kickIdlePlayersText": "Викидати непрацюючих гравців",
|
||||
"kidFriendlyModeText": "Сімейний режим (менше насильства, і т.д.)",
|
||||
"languageText": "Мова",
|
||||
|
|
@ -1289,6 +1333,7 @@
|
|||
"sendInfoText": "Надіслати інформацію",
|
||||
"showBombTrajectoriesText": "Показувати траєкторію бомби",
|
||||
"showDemosWhenIdleText": "Показувати демонстрації в режимі очікування",
|
||||
"showDeprecatedLoginTypesText": "Показати застарілі типи входу",
|
||||
"showDevConsoleButtonText": "Показати кнопку консолі розробника",
|
||||
"showInGamePingText": "Показувати пінг у грі",
|
||||
"showPlayerNamesText": "Показувати імена гравців",
|
||||
|
|
@ -1337,6 +1382,7 @@
|
|||
},
|
||||
"spaceKeyText": "пробіл",
|
||||
"statsText": "Статистика",
|
||||
"stopRemindingMeText": "Більше не нагадувати",
|
||||
"storagePermissionAccessText": "Це вимагає доступу до сховища",
|
||||
"store": {
|
||||
"alreadyOwnText": "У вас вже є ${NAME}!",
|
||||
|
|
@ -1395,6 +1441,7 @@
|
|||
"testBuildValidatedText": "Тестова збірка перевірена. Насолоджуйтесь!",
|
||||
"thankYouText": "Дякую за вашу підтримку! Веселої гри!!",
|
||||
"threeKillText": "ТРЬОХ ЗА РАЗ!!",
|
||||
"ticketsDescriptionText": "За квитки можна розблокувати персонажів,\nкарти, міні-ігри та більше в магазині.\n\nКвитки можна знайти у скринях, виграних в\nкампаніях, турнірах та досягненнях.",
|
||||
"timeBonusText": "Бонус часу",
|
||||
"timeElapsedText": "Пройшло часу",
|
||||
"timeExpiredText": "Час вийшов",
|
||||
|
|
@ -1405,10 +1452,24 @@
|
|||
"tipText": "Підказка",
|
||||
"titleText": "BombSquad",
|
||||
"titleVRText": "BombSquad VR",
|
||||
"tokens": {
|
||||
"getTokensText": "Отримати жетони",
|
||||
"notEnoughTokensText": "Недостатньо жетонів!",
|
||||
"numTokensText": "${COUNT} Жетонів",
|
||||
"openNowDescriptionText": "Ти маєш достатньо жетонів щоб \nвідкрити це зараз - ти не \nмусиш чекати.",
|
||||
"shinyNewCurrencyText": "Нова блискуча валюта BombSquad.",
|
||||
"tokenPack1Text": "Малий пакет жетонів",
|
||||
"tokenPack2Text": "Середній пакет жетонів",
|
||||
"tokenPack3Text": "Великий пакет жетонів",
|
||||
"tokenPack4Text": "Джамбо Пакет жетонів",
|
||||
"tokensDescriptionText": "Жетони використовуються для прискорення відкриття скрині,\nа такох для інших функцій гри та акаунта.\n\nТи можеш виграти жетони у грі, чи придбати їх\nу наборі. Або ж придбай Золотий Пропуск для нескінченних\nжетонів і більше ніколи про них не чуй ані слова.",
|
||||
"youHaveGoldPassText": "У вас є Gold Pass.\nУсі покупки жетонів безкоштовні.\nНасолоджуйтесь!"
|
||||
},
|
||||
"topFriendsText": "Топ друзів",
|
||||
"tournamentCheckingStateText": "Перевірка статусу турніру, будь ласка, зачекайте...",
|
||||
"tournamentEndedText": "Турнір закінчився. Скоро почнеться новий.",
|
||||
"tournamentEntryText": "Вхід в турнір",
|
||||
"tournamentFinalStandingsText": "Фінальна Таблиця",
|
||||
"tournamentResultsRecentText": "Останні Результати турніру",
|
||||
"tournamentStandingsText": "Позиції в турнірі",
|
||||
"tournamentText": "Турнір",
|
||||
|
|
@ -1464,6 +1525,18 @@
|
|||
"Uber Onslaught": "Убер атака",
|
||||
"Uber Runaround": "Убер маневр"
|
||||
},
|
||||
"displayItemNames": {
|
||||
"${C} Tickets": "${C} Квитки(-ів)",
|
||||
"${C} Tokens": "${C} Жетони(-ів)",
|
||||
"Chest": "Скриня",
|
||||
"L1 Chest": "Скриня 1Р",
|
||||
"L2 Chest": "Скриня 2Р",
|
||||
"L3 Chest": "Скриня 3Р",
|
||||
"L4 Chest": "Скриня 4Р",
|
||||
"L5 Chest": "Скриня 5Р",
|
||||
"L6 Chest": "Скриня 6Р",
|
||||
"Unknown Chest": "Невідома Скриня"
|
||||
},
|
||||
"gameDescriptions": {
|
||||
"Be the chosen one for a length of time to win.\nKill the chosen one to become it.": "Щоб перемогти, стань обраним на деякий час.\nЩоб стати обраним, вбий обраного.",
|
||||
"Bomb as many targets as you can.": "Підірвіть стільки мішеней, скільки зможете.",
|
||||
|
|
@ -1568,6 +1641,7 @@
|
|||
"Korean": "Корейська",
|
||||
"Malay": "Малайська",
|
||||
"Persian": "Перська",
|
||||
"PirateSpeak": "Піратська мова",
|
||||
"Polish": "Польська",
|
||||
"Portuguese": "Португальська",
|
||||
"Romanian": "Румунська",
|
||||
|
|
@ -1639,6 +1713,7 @@
|
|||
"Cheating detected; scores and prizes suspended for ${COUNT} days.": "Ах ти, чітер; Очки і нагороди заморожені на ${COUNT} днів.",
|
||||
"Could not establish a secure connection.": "Не вдалося встановити безпечне з'єднання.",
|
||||
"Daily maximum reached.": "Досить на сьогодні.",
|
||||
"Daily sign-in reward": "Щоденна Винагорода",
|
||||
"Entering tournament...": "Вхід в турнір...",
|
||||
"Invalid code.": "Невірний код.",
|
||||
"Invalid payment; purchase canceled.": "Щось пішло не так. Купівля скасована.",
|
||||
|
|
@ -1648,11 +1723,14 @@
|
|||
"Item unlocked!": "Предмет разблоковано!",
|
||||
"LINKING DENIED. ${ACCOUNT} contains\nsignificant data that would ALL BE LOST.\nYou can link in the opposite order if you'd like\n(and lose THIS account's data instead)": "Об'єднання не дозволено. ${ACCOUNT} містить \nважливі дані і вони ВСІ ЗНИКНУТЬ.\nТи можеш об'єднанати у зворотньому порядку, якщо ти цього захочеш\n(І втратити дані ЦЬОГО акаунта)",
|
||||
"Link account ${ACCOUNT} to this account?\nAll existing data on ${ACCOUNT} will be lost.\nThis can not be undone. Are you sure?": "Зв'язати ${ACCOUNT} акаунт з цим?\nВсі існуючі дані на ${ACCOUNT} будуть втрачені.\nЦя дія не може бути скасовано. Ви впевнені?",
|
||||
"Longer streaks lead to better rewards.": "Довший страйк - краща винагорода",
|
||||
"Max number of playlists reached.": "Досягнуто максимальну кількість плейлистів.",
|
||||
"Max number of profiles reached.": "Максимальна кількість профілів досягнута.",
|
||||
"Maximum friend code rewards reached.": "Досягнуто ліміт кодів",
|
||||
"Message is too long.": "Повідомлення занадто довге.",
|
||||
"New tournament result!": "Новий результат турніру!",
|
||||
"No servers are available. Please try again soon.": "Немає доступних серверів. Будь ласка, поспробуйте пізніше.",
|
||||
"No slots available. Free a slot and try again.": "Немає вільних комірок. Звільни комірку й спробуй ще раз.",
|
||||
"Profile \"${NAME}\" upgraded successfully.": "Профіль \"${NAME}\" оновлений успішно.",
|
||||
"Profile could not be upgraded.": "Профіль не може бути оновлений.",
|
||||
"Purchase successful!": "Успішна транзакція!",
|
||||
|
|
@ -1662,7 +1740,9 @@
|
|||
"Sorry, this code has already been used.": "Ой, цей код вже використаний.",
|
||||
"Sorry, this code has expired.": "Ой, час дії коду минув.",
|
||||
"Sorry, this code only works for new accounts.": "Ой, цей код працює тільки для нових акаунтів.",
|
||||
"Sorry, this has expired.": "Вибач, це вже закінчилося.",
|
||||
"Still searching for nearby servers; please try again soon.": "Все ще йде пошук сусідніх серверів; будь-ласка, спробуйте ще раз найближчим часом.",
|
||||
"Streak: ${NUM} days": "Страйк: ${NUM} дня/днів",
|
||||
"Temporarily unavailable; please try again later.": "Тимчасово недоступний; будь ласка, спробуйте ще раз пізніше.",
|
||||
"The tournament ended before you finished.": "Турнір закінчився раніше, ніж ви закінчили.",
|
||||
"This account cannot be unlinked for ${NUM} days.": "Цей обліковий запис неможливо відв'язати протягом ${NUM} днів.",
|
||||
|
|
@ -1673,19 +1753,28 @@
|
|||
"Tournaments require ${VERSION} or newer": "Для турнірів потрібна версія ${VERSION} або вище.",
|
||||
"Unlink ${ACCOUNT} from this account?\nAll data on ${ACCOUNT} will be reset.\n(except for achievements in some cases)": "Відв'язати ${ACCOUNT} від цього акаунта?\nВсі дані на ${ACCOUNT} будуть скинуті.\n(За винятком досягнень в деяких випадках)",
|
||||
"WARNING: complaints of hacking have been issued against your account.\nAccounts found to be hacking will be banned. Please play fair.": "ПОПЕРЕДЖЕННЯ: скарги на хакерство були видані на ваш обліковий запис.\nОблікові записи, які вважаються зламаними, будуть заблоковані. Будь ласка, грайте чесно.",
|
||||
"Wait reduced!": "Час скорочено!",
|
||||
"Warning: This version of the game is limited to old account data; things may appear missing or out of date.\nPlease upgrade to a newer version of the game to see your latest account data.": "Попередження: Ця версія гри обмежена старими даними облікового запису; деякі речі можуть бути відсутніми або застарілими. \nБудь ласка, оновіть гру до новішої версії, щоб побачити актуальні дані вашого облікового запису.",
|
||||
"Would you like to link your device account to this one?\n\nYour device account is ${ACCOUNT1}\nThis account is ${ACCOUNT2}\n\nThis will allow you to keep your existing progress.\nWarning: this cannot be undone!\n": "Бажаєте пов'язати обліковий запис пристрою з цим?\n\nАкаунт пристрою ${ACCOUNT1}\nПоточний акаунт ${ACCOUNT2}\n\nЦе дозволить зберегти ваші нинішні досягнення.\nУвага: скасування неможлива!",
|
||||
"You already own this!": "Ви це вже придбали!",
|
||||
"You can join in ${COUNT} seconds.": "Ти зможеш увійти через ${COUNT} секунд",
|
||||
"You don't have enough tickets for this!": "У вас недостатньо квитків для цієї покупки!",
|
||||
"You don't own that.": "Вам це не належить",
|
||||
"You got ${COUNT} tickets!": "Ви отримали ${COUNT} квитків!",
|
||||
"You got ${COUNT} tokens!": "Ти отримав ${COUNT} Жетонів!",
|
||||
"You got a ${ITEM}!": "Ви отримали ${ITEM}!",
|
||||
"You got a chest!": "Ти отримав скриню!",
|
||||
"You got an achievement reward!": "Ви отримали нагороду за досягнення!",
|
||||
"You have been promoted to a new league; congratulations!": "Вас підвищили і перевели в нову лігу; вітаємо!",
|
||||
"You lost a chest! (All your chest slots were full)": "Ви втратили скриню! (Всі ваші слоти для скринь заповненні)",
|
||||
"You must update the app to view this.": "Щоб переглянути це, потрібно оновити програму.",
|
||||
"You must update to a newer version of the app to do this.": "Щоб це зробити, ви повинні оновити додаток.",
|
||||
"You must update to the newest version of the game to do this.": "Ви повинні оновитися до нової версії гри, щоб зробити це.",
|
||||
"You must wait a few seconds before entering a new code.": "Зачекайте кілька секунд, перш ніж вводити новий код.",
|
||||
"You placed #${RANK} in a tournament!": "Ти посів #${RANK} місце в турнірі!",
|
||||
"You ranked #${RANK} in the last tournament. Thanks for playing!": "Ваш ранг в останньому турнірі: ${RANK}! Дякуємо за гру!",
|
||||
"Your account was rejected. Are you signed in?": "Вашу обліковку відхилено. Ви ввійшли?",
|
||||
"Your ad views are not registering. Ad options will be limited for a while.": "Твої перегляди реклами не реєструються. На деякий час можливості реклами будуть обмежені.",
|
||||
"Your copy of the game has been modified.\nPlease revert any changes and try again.": "Ваша версія гри була модифікована.\nПриберіть всі зміни і спробуйте знову",
|
||||
"Your friend code was used by ${ACCOUNT}": "Ваш код був використаний ${ACCOUNT}"
|
||||
},
|
||||
|
|
@ -1836,6 +1925,7 @@
|
|||
"twoKillText": "ДВОХ ЗА РАЗ!",
|
||||
"uiScaleText": "Зміна розміру інтерфейсу",
|
||||
"unavailableText": "недоступно",
|
||||
"unclaimedPrizesText": "В тебе залишились не зібрані призи!",
|
||||
"unconfiguredControllerDetectedText": "Виявлено налаштований контролер:",
|
||||
"unlockThisInTheStoreText": "Це повинно бути розблоковано в магазині.",
|
||||
"unlockThisProfilesText": "Щоб створити більш ${NUM} профіль, Вам необхідно:",
|
||||
|
|
@ -1854,6 +1944,7 @@
|
|||
"usingItunesText": "Використання музикального додатку для саундтрека...",
|
||||
"usingItunesTurnRepeatAndShuffleOnText": "Будь ласка, переконайтеся, що випадковий порядок і повтор усіх пісень включений в Itunes.",
|
||||
"v2AccountLinkingInfoText": "Щоб підключити V2-акаунти, використовуйте кнопку 'Керування акаунтом'.",
|
||||
"v2AccountRequiredText": "Для цього потрібен обліковий запис V2. Оновіть обліковий запис і повторіть спробу.",
|
||||
"validatingTestBuildText": "Перевірка тестової збірки...",
|
||||
"viaText": "через",
|
||||
"victoryText": "Перемога!",
|
||||
|
|
@ -1921,5 +2012,6 @@
|
|||
},
|
||||
"yesAllowText": "Так, дозволити!",
|
||||
"yourBestScoresText": "Ваші кращі результати",
|
||||
"yourBestTimesText": "Ваш кращий час"
|
||||
"yourBestTimesText": "Ваш кращий час",
|
||||
"yourPrizeText": "Твій приз:"
|
||||
}
|
||||
119
dist/ba_data/data/languages/venetian.json
vendored
119
dist/ba_data/data/languages/venetian.json
vendored
|
|
@ -6,7 +6,9 @@
|
|||
"campaignProgressText": "Progreso canpagna [Defìsiłe]: ${PROGRESS}",
|
||||
"changeOncePerSeason": "Te połi canbiar ’sto dato soło na volta par stajon.",
|
||||
"changeOncePerSeasonError": "Par canbiarlo te ghè da spetar ła pròsema stajon (${NUM} days).",
|
||||
"createAnAccountText": "Fà un Conto",
|
||||
"customName": "Nome parsonałizà",
|
||||
"deleteAccountText": "Cancellare 'sto account?",
|
||||
"googlePlayGamesAccountSwitchText": "Se te vołi doparar un account Google defarente,\ndòpara l'apl Google Play Giochi par canbiarlo.",
|
||||
"linkAccountsEnterCodeText": "Insarisi còdaze",
|
||||
"linkAccountsGenerateCodeText": "Jènara còdaze",
|
||||
|
|
@ -14,26 +16,27 @@
|
|||
"linkAccountsInstructionsNewText": "Par cołegar do account, jènara un còdaze inte'l primo\ndispozidivo e insarìseło inte’l segondo. I dati de’l\nsegondo account i vegnarà sparpagnài so tuti do i account\n(i dati de’l primo account i ndarà perdesti).\n\nTe połi cołegar fin a ${COUNT} account.\n\nINPORTANTE: cołega soło i account de to propiedà.\nSe te cołeghi account de calche to amigo, no sarè\npì boni de zugar online inte’l mèdemo momento.",
|
||||
"linkAccountsText": "Cołega account",
|
||||
"linkedAccountsText": "Account cołegài:",
|
||||
"manageAccountText": "Jestisi account",
|
||||
"manageAccountText": "Gestir el conto",
|
||||
"nameChangeConfirm": "Vutu canbiar el nome de’l to account co ${NAME}?",
|
||||
"resetProgressConfirmNoAchievementsText": "Te si drio ełimenar i to progresi so ła modałidà\ncooparadiva e i to punteji łogałi (ma miga i to biłieti).\n’Sta asion no ła połe pì èsar anułada. Vutu ndar vanti?",
|
||||
"resetProgressConfirmText": "Te si drio ełimenar i to progresi so ła\nmodałidà cooparadiva, i to obietivi e i to punteji\nłogałi (ma miga i to biłieti). ’Sta asion\nno ła połe pì èsar anułada. Vutu ndar vanti?",
|
||||
"resetProgressText": "Ełìmena progresi",
|
||||
"setAccountName": "Inposta un nome utente",
|
||||
"setAccountNameDesc": "Sełesiona el nome da vizuałizar so’l to account.\nTe połi doparar el nome da uno de i to account\ncołegài o crear un nome parsonałizà ma ùnivogo.",
|
||||
"signInInfoText": "Conétate par tirar sù biłieti, batajar online e\nsparpagnar i to progresi infrà dispozidivi defarenti.",
|
||||
"signInText": "Conétate",
|
||||
"signInInfoText": "Acedi par tirar sù biłieti, batajar online e\nsparpagnar i tó progresi infrà dispozidivi defarenti.",
|
||||
"signInText": "Acedi",
|
||||
"signInWithAnEmailAddressText": "Acedi co un ndariso mail",
|
||||
"signInWithDeviceInfoText": "(par 'sto dispozidivo ze disponìbiłe un soło account automàtego)",
|
||||
"signInWithDeviceText": "Conétate co un account łogałe",
|
||||
"signInWithDeviceText": "Acedi co un account łogałe",
|
||||
"signInWithGameCircleText": "Conétate co Game Circle",
|
||||
"signInWithGooglePlayText": "Conétate co Google Play",
|
||||
"signInWithTestAccountInfoText": "(account de proa vecio: in fuduro dòpara un account łogałe)",
|
||||
"signInWithTestAccountText": "Conétate co un account de proa",
|
||||
"signInWithText": "Acedi co ${SERVICE}",
|
||||
"signInWithV2InfoText": "(un account che fusiona so tute łe piataforme)",
|
||||
"signInWithV2Text": "Acedi co un account BombSquad",
|
||||
"signOutText": "Sortisi da l'account",
|
||||
"signingInText": "Conesion in corso...",
|
||||
"signInWithV2Text": "Acedi co' un account ${APP_NAME}",
|
||||
"signOutText": "Và fora",
|
||||
"signingInText": "Aceso in corso...",
|
||||
"signingOutText": "Sortìa in corso...",
|
||||
"ticketsText": "Biłieti: ${COUNT}",
|
||||
"titleText": "Account",
|
||||
|
|
@ -339,6 +342,8 @@
|
|||
"allowText": "Parmeti",
|
||||
"alreadySignedInText": "El to account el ze in dòparo inte n’antro\ndispozidivo: canbia account o sara sù el zugo\ninte cheł’altro to dispozidivo e proa danovo.",
|
||||
"apiVersionErrorText": "Inposìbiłe cargar el mòduło ${NAME}, el se refarise a ła varsion ${VERSION_USED}. Serve invese ła ${VERSION_REQUIRED}.",
|
||||
"applyText": "Aplicar",
|
||||
"areYouSureText": "Te sé secùro?",
|
||||
"audioSettingsWindow": {
|
||||
"headRelativeVRAudioInfoText": "(Ativa \"Auto\" soło co te tachi sù łe fonarołe par ła realtà virtuałe)",
|
||||
"headRelativeVRAudioText": "Àudio par fonarołe VR",
|
||||
|
|
@ -360,14 +365,22 @@
|
|||
"boostText": "Potensiador",
|
||||
"bsRemoteConfigureInAppText": "${REMOTE_APP_NAME} el se configura rento l'apl mèdema.",
|
||||
"buttonText": "boton",
|
||||
"canWeDebugText": "Ghetu caro che BombSquad el reporte in automàtego bai,\nblochi e informasion baze só'l so dòparo a'l dezviłupador?\n\n'Sti dati no i contien miga informasion parsonałi ma i ło\njuta a far ndar ben el zugo sensa blochi o bai.",
|
||||
"canWeDebugText": "Ghetu caro che ${APP_NAME} el reporte in automàtego bai,\nblochi e informasion baze só'l so dòparo a'l dezviłupador?\n\n'Sti dati no i contien miga informasion parsonałi ma i ło\njuta a far ndar ben el zugo sensa blochi o bai.",
|
||||
"cancelText": "Anuła",
|
||||
"cantConfigureDeviceText": "Ne despiaze, ${DEVICE} no'l ze miga configuràbiłe.",
|
||||
"challengeEndedText": "'Sta sfida ła ze fenìa.",
|
||||
"chatMuteText": "Siłensia ciacołada",
|
||||
"chatMutedText": "Ciacołada siłensiada",
|
||||
"chatUnMuteText": "Reativa son",
|
||||
"chests": {
|
||||
"prizeOddsText": "Speriensa de vinzar",
|
||||
"reduceWaitText": "Cala L'aspeto",
|
||||
"slotDescriptionText": "Sto spaziò pò tener na cassa.\n\nCata casse zugando ai łivelli de la campagna,\nClasificandose nei tornei, e compiando\nobiettivi.",
|
||||
"slotText": "Spaziò cassa ${NUM}",
|
||||
"slotsFullWarningText": "ATENZION: Tuti i to spazi càsa xe pieni.\nQualsiasi càsa che te ciapi da 'sta partia la andrà persa."
|
||||
},
|
||||
"choosingPlayerText": "<sernisi zugador>",
|
||||
"claimText": "Ciapa",
|
||||
"codesExplainText": "I còdazi i vien fornìi da'l dezviłupador par\ndiagnostegar e corèjar problemi so l'account.",
|
||||
"completeThisLevelToProceedText": "Par ndar vanti te ghè\nda conpletar 'sto łeveło!",
|
||||
"completionBonusText": "Premio de concruzion",
|
||||
|
|
@ -564,6 +577,7 @@
|
|||
"disableXInputDescriptionText": "Dòpara pì de 4 controładori (ma co'l riscio che no i funsione ben).",
|
||||
"disableXInputText": "Dezativa XInput",
|
||||
"disabledText": "Dezativà",
|
||||
"discardText": "Scartà",
|
||||
"discordFriendsText": "Ghetu caro catar parsone nove par zugarghe insenbre?\nZóntate so'l nostro canałe Discord e cata fora amighi novi!",
|
||||
"discordJoinText": "Zóntate so Discord",
|
||||
"doneText": "Fato",
|
||||
|
|
@ -646,6 +660,8 @@
|
|||
"errorText": "Eror",
|
||||
"errorUnknownText": "eror miga conosesto",
|
||||
"exitGameText": "Vutu ndar fora da ${APP_NAME}?",
|
||||
"expiredAgoText": "Xe scadù ${T} fà.",
|
||||
"expiresInText": "Scade tra ${T}",
|
||||
"exportSuccessText": "'${NAME}' esportà.",
|
||||
"externalStorageText": "Memoria esterna",
|
||||
"failText": "Desfata",
|
||||
|
|
@ -707,6 +723,7 @@
|
|||
"copyCodeConfirmText": "Còdaze copià inte łe note.",
|
||||
"copyCodeText": "Copia còdaze",
|
||||
"dedicatedServerInfoText": "Inposta un server dedegà par rezultài pì boni. Daghe un ocio so bombsquadgame.com/server par capir come far.",
|
||||
"descriptionShortText": "Dota de usar el tasto \"crea grupo\" par far na festa.",
|
||||
"disconnectClientsText": "'Sta oparasion ła desconetarà ${COUNT} zugador/i\nda'l to grupo. Vutu ndar vanti?",
|
||||
"earnTicketsForRecommendingAmountText": "Se i provarà el zugo, i to amighi i resevarà ${COUNT} biłieti\n(e ti te ghin resevarè ${YOU_COUNT} par caun de łori che'l ło dopararà)",
|
||||
"earnTicketsForRecommendingText": "Sparpagna el zugo par\nver biłieti gratùidi...",
|
||||
|
|
@ -719,10 +736,10 @@
|
|||
"friendHasSentPromoCodeText": "Par ti ${COUNT} biłieti de ${APP_NAME} da ${NAME}!",
|
||||
"friendPromoCodeAwardText": "Tute łe 'olte che'l vegnarà doparà te resevarè ${COUNT} biłieti.",
|
||||
"friendPromoCodeExpireText": "El còdaze el ze soło par i zugaduri novi e el terminarà tenpo ${EXPIRE_HOURS} ore.",
|
||||
"friendPromoCodeInstructionsText": "Par dopararlo, verzi ${APP_NAME} e và so \"Inpostasion > Avansàe > Insarisi còdaze\".\nDaghe un ocio so bombsquadgame.com par i link de descargamento de'l zugo par tute łe piataforme conpatìbiłi.",
|
||||
"friendPromoCodeInstructionsText": "Par dopararlo, verzi ${APP_NAME} e và so \"Inpostasion > Avansàe > Manda informasion\".\nVarda bombsquadgame.com par i link de descargamento de'l zugo par tute łe piataforme suportàe.",
|
||||
"friendPromoCodeRedeemLongText": "El połe èsar scanbià par ${COUNT} biłieti gratùidi da ${MAX_USES} parsone.",
|
||||
"friendPromoCodeRedeemShortText": "El połe èsar scanbià inte'l zugo par ${COUNT} biłieti gratùidi.",
|
||||
"friendPromoCodeWhereToEnterText": "(so \"Inpostasion > Avansàe > Insarisi còdaze\")",
|
||||
"friendPromoCodeWhereToEnterText": "(so \"Inpostasion > Avansàe > Manda informasion\")",
|
||||
"getFriendInviteCodeText": "Jènara còdaze de invido",
|
||||
"googlePlayDescriptionText": "Invida zugadori de Google Play inte'l to grupo:",
|
||||
"googlePlayInviteText": "Invida",
|
||||
|
|
@ -811,13 +828,19 @@
|
|||
"ticketsFromASponsorText": "Varda na reclan e\notien ${COUNT} biłieti",
|
||||
"ticketsText": "${COUNT} biłieti",
|
||||
"titleText": "Otien biłieti",
|
||||
"unavailableLinkAccountText": "No se połe miga cronpar so 'sta piataforma.\nVołendo, te połi cołegar 'sto account co uno inte\nn'antra piataforma e cronpar calcosa da łà.",
|
||||
"unavailableLinkAccountText": "No se połe miga conprar so 'sta piataforma.\nVołendo, te połi cołegar 'sto account co uno inte\nn'antra piataforma e conprar calcosa da łà.",
|
||||
"unavailableTemporarilyText": "'Sta funsion no ła ze miga disponìbiłe par deso: proa danovo pì tardi.",
|
||||
"unavailableText": "Ne despiaze, 'sta funsion no ła ze miga disponìbiłe.",
|
||||
"versionTooOldText": "Ne despiaze, 'sta varsion ła ze masa vecia: ajorna el zugo co cheła nova.",
|
||||
"youHaveShortText": "Te ghè ${COUNT}",
|
||||
"youHaveText": "Te ghè ${COUNT} biłieti"
|
||||
},
|
||||
"goldPass": {
|
||||
"desc1InfTokensText": "Token infinidi.",
|
||||
"desc2NoAdsText": "No reclan.",
|
||||
"desc3ForeverText": "Par sempre.",
|
||||
"goldPassText": "Pass Dorà"
|
||||
},
|
||||
"googleMultiplayerDiscontinuedText": "Me despiaze, el sarviso multizugador de Google no'l ze miga pì disponìbiłe.\nA sò drio łaorar a un renpiaso pì in presa che se połe.\nIntanto proa n'antro mètodo de conesion.\n-Eric",
|
||||
"googlePlayPurchasesNotAvailableText": "Łe cronpe vecie no łe ze miga disponìbiłi.\nPodarìa èsarghe bezogno de ajornar l'apl Google Play.",
|
||||
"googlePlayServicesNotAvailableText": "Google Play Services no'l ze miga disponìbiłe.\nSerte funsion de l'apl łe podarìa èsar dezativàe.",
|
||||
|
|
@ -892,6 +915,7 @@
|
|||
"importText": "Inporta",
|
||||
"importingText": "Inportasion...",
|
||||
"inGameClippedNameText": "rento el zugo:\n\"${NAME}\"",
|
||||
"inboxText": "Posta",
|
||||
"installDiskSpaceErrorText": "EROR: inposìbiłe fenir l’instałasion.\nEl to dispozidivo el podarìa èsar sensa spasio.\nŁìbara un fià de memoria e proa danovo.",
|
||||
"internal": {
|
||||
"arrowsToExitListText": "struca ${LEFT} o ${RIGHT} par ndar fora da ła serie",
|
||||
|
|
@ -946,12 +970,14 @@
|
|||
"timeOutText": "(tocarà a ti tenpo ${TIME} segondi)",
|
||||
"touchScreenJoinWarningText": "Te te si zontà co'l touchscreen.\nSe ła ze stà na capeła, struca 'Menù > Moła łeveło'.",
|
||||
"touchScreenText": "TouchScreen",
|
||||
"unableToCompleteTryAgainText": "No se pol completar par deso.\nPar piaser, riprova.",
|
||||
"unableToResolveHostText": "Eror: no ze miga posìbiłe conétarse co l'ospitador.",
|
||||
"unavailableNoConnectionText": "Par deso miga disponìbiłe (gnauna conesion a internet?)",
|
||||
"vrOrientationResetCardboardText": "Dopàreło par reinpostar l'orientasion de'l VR.\nA te servirà un controłador esterno par zugar.",
|
||||
"vrOrientationResetText": "Reinposta orientasion VR.",
|
||||
"willTimeOutText": "(ma se in sonera el ghe vegnarà cavà)."
|
||||
},
|
||||
"inventoryText": "Inventario",
|
||||
"jumpBoldText": "SALTO",
|
||||
"jumpText": "Salto",
|
||||
"keepText": "Tien",
|
||||
|
|
@ -998,8 +1024,11 @@
|
|||
"seasonEndsMinutesText": "Ła stajon ła fenirà tenpo ${NUMBER} menuti.",
|
||||
"seasonText": "Stajon ${NUMBER}",
|
||||
"tournamentLeagueText": "Par zugar inte 'sto tornèo te ghè da rivar inte ła łega ${NAME}.",
|
||||
"trophyCountsResetText": "Par ła stajon che ła vien el puntejo\nde i trofèi el se zerarà."
|
||||
"trophyCountsResetText": "Par ła stajon che ła vien el puntejo\nde i trofèi el se zerarà.",
|
||||
"upToDateBonusDescriptionText": "I zugadori che dopara 'na versiòn pì nuova de'l\nzugo i rivè 'na ${PERCENT}% de premia qua.",
|
||||
"upToDateBonusText": "Premia atualizà"
|
||||
},
|
||||
"learnMoreText": "De Pì",
|
||||
"levelBestScoresText": "I punteji mejo so ${LEVEL}",
|
||||
"levelBestTimesText": "I tenpi mejo so ${LEVEL}",
|
||||
"levelIsLockedText": "${LEVEL} el ze blocà.",
|
||||
|
|
@ -1043,6 +1072,8 @@
|
|||
"modeArcadeText": "Modałidà arcade",
|
||||
"modeClassicText": "Modałidà clàsega",
|
||||
"modeDemoText": "Modałidà demo",
|
||||
"moreSoonText": "De pì in arrivo...",
|
||||
"mostDestroyedPlayerText": "Zugador Pì Sbarazado",
|
||||
"mostValuablePlayerText": "Zugador pì zgajo",
|
||||
"mostViolatedPlayerText": "Zugador pì sacagnà",
|
||||
"mostViolentPlayerText": "Zugador pì viołento",
|
||||
|
|
@ -1059,6 +1090,7 @@
|
|||
"nameSuicideText": "${NAME} l'se gà eutanà.",
|
||||
"nameText": "Nome",
|
||||
"nativeText": "Nadiva",
|
||||
"newExclaimText": "Nòvo!",
|
||||
"newPersonalBestText": "Novo record parsonałe!",
|
||||
"newTestBuildAvailableText": "A ze disponìbiłe na varsion de proa nova. (${VERSION} beta ${BUILD}).\nDescàrgheła da ${ADDRESS}",
|
||||
"newText": "Novo",
|
||||
|
|
@ -1069,18 +1101,20 @@
|
|||
"noContinuesText": "(sensa continui)",
|
||||
"noExternalStorageErrorText": "So ’sto dispozidivo no ze stà catada gnauna memoria esterna",
|
||||
"noGameCircleText": "Eror: no te si miga conetesto co GameCircle",
|
||||
"noMessagesText": "Nisun messaggio.",
|
||||
"noPluginsInstalledText": "Gnauna estension instałada",
|
||||
"noScoresYetText": "Gnancora gnaun puntejo.",
|
||||
"noServersFoundText": "Gnaun server catà.",
|
||||
"noThanksText": "Nò, grasie",
|
||||
"noTournamentsInTestBuildText": "AVERTENSA: i punteji de'l tornèo de 'sta varsion de proa i vegnarà ignorài.",
|
||||
"noValidMapsErrorText": "A no ze stà catà gnaun łeveło vàłido par 'sto tipo de zugo.",
|
||||
"noValidMapsErrorText": "No ze stà catà gnaun łeveło vàłido par 'sto tipo de zugo.",
|
||||
"notEnoughPlayersRemainingText": "A no ghe ze pì zugadori che basta: sortisi e taca na partìa nova.",
|
||||
"notEnoughPlayersText": "A serve almanco ${COUNT} zugadori par tacar 'sta partìa!",
|
||||
"notEnoughTicketsText": "Biłieti insuficienti!",
|
||||
"notNowText": "Miga deso",
|
||||
"notSignedInErrorText": "Par partesipar A te ghè da conétarte.",
|
||||
"notSignedInGooglePlayErrorText": "Far farlo A te ghè da conétarte co Google Play.",
|
||||
"notSignedInText": "gnancora cołegà",
|
||||
"notSignedInErrorText": "Par partesipar te ghè da acédar.",
|
||||
"notSignedInGooglePlayErrorText": "Far farlo te ghè da acédar co Google Play.",
|
||||
"notSignedInText": "serve l'aceso",
|
||||
"notUsingAccountText": "Ocio: ze stà łasà in parte l'account ${SERVICE}.\nSe te vołi dopararlo và so 'Account > Acedi co ${SERVICE}'.",
|
||||
"nothingIsSelectedErrorText": "A no ze sełesionà gnente!",
|
||||
"numberText": "#${NUMBER}",
|
||||
|
|
@ -1089,6 +1123,8 @@
|
|||
"onText": "Ativa",
|
||||
"oneMomentText": "Un segondo...",
|
||||
"onslaughtRespawnText": "Rejenerasion de ${PLAYER} inte l'ondada ${WAVE}",
|
||||
"openNowText": "Dèsa Deso",
|
||||
"openText": "Dèsa",
|
||||
"orText": "${A} o ${B}",
|
||||
"otherText": "Altro...",
|
||||
"outOfText": "(#${RANK} de ${ALL})",
|
||||
|
|
@ -1174,6 +1210,8 @@
|
|||
"punchText": "Crogno",
|
||||
"purchaseForText": "Cronpa par ${PRICE}",
|
||||
"purchaseGameText": "Cronpa el zugo",
|
||||
"purchaseNeverAvailableText": "Scusa, i comprì no se poł far in 'sta build.\nFai ‘na prova a fare la registrazión del to account su ‘na altra piattaforma e conpra lì.",
|
||||
"purchaseNotAvailableText": "Conpera no disponibile.",
|
||||
"purchasingText": "Cronpa in corso...",
|
||||
"quitGameText": "Vutu sortir da ${APP_NAME}?",
|
||||
"quittingIn5SecondsText": "Sortìa tenpo 5 segondi...",
|
||||
|
|
@ -1215,6 +1253,7 @@
|
|||
"version_mismatch": "Varsion zbałiada.\nSegùrate che BombSquad e BombSquad Remote i\nsipie ajornài a ła varsion ùltema e proa danovo."
|
||||
},
|
||||
"removeInGameAdsText": "Par cavar vìa łe reclan, dezbloca \"${PRO}\" inte ła botega.",
|
||||
"removeInGameAdsTokenPurchaseText": "OFERTA PAR UN TEMPO LIMITÀ: cronpa qualsevò pacchète de getoni par cavare le reclan de'l zugo.",
|
||||
"renameText": "Renòmena",
|
||||
"replayEndText": "Sara sù Revardo",
|
||||
"replayNameDefaultText": "Revardo partìa ùltema",
|
||||
|
|
@ -1266,6 +1305,7 @@
|
|||
"alwaysUseInternalKeyboardDescriptionText": "(na botonera so schermo, senpia e còmoda, par scrìvar testi)",
|
||||
"alwaysUseInternalKeyboardText": "Dòpara botonera integrada",
|
||||
"benchmarksText": "Prestasion & Proe soto sforso",
|
||||
"devToolsText": "Strumenti dezviłupador",
|
||||
"disableCameraGyroscopeMotionText": "Dezativa movimento de ła prospetiva co'l jiroscopio",
|
||||
"disableCameraShakeText": "Dezativa zgorlamenti de ła videocàmara",
|
||||
"disableThisNotice": "(Te połi dezativar 'sta notìfega inte łe inpostasion avansàe)",
|
||||
|
|
@ -1274,6 +1314,8 @@
|
|||
"enterPromoCodeText": "Insarisi còdaze",
|
||||
"forTestingText": "Nota: vałori vàłidi soło par proe. Sortendo da l'apl łi vegnarà perdesti.",
|
||||
"helpTranslateText": "Łe tradusion de ${APP_NAME} łe ze curàe da vołontari.\nSe te vołi darghe na ociada a cheła veneta, struca so'l boton\ncuà soto. Curada da VeC: venetianlanguage@gmail.com",
|
||||
"insecureConnectionsDescriptionText": "sconsiglià, ma podrìa dar la possibilità de zugar \nin-rete da reti o paesi restrèti",
|
||||
"insecureConnectionsText": "Dòpara conesioni no sicurè",
|
||||
"kickIdlePlayersText": "Para fora zugadori in sonera",
|
||||
"kidFriendlyModeText": "Modałidà bocia (viołensa reduzesta, evc)",
|
||||
"languageText": "Łengua",
|
||||
|
|
@ -1285,6 +1327,7 @@
|
|||
"sendInfoText": "Manda informasion",
|
||||
"showBombTrajectoriesText": "Mostra trajetore bonbe",
|
||||
"showDemosWhenIdleText": "Mostra demostrasion in sonera",
|
||||
"showDeprecatedLoginTypesText": "Mostra tipi de aceso veci",
|
||||
"showDevConsoleButtonText": "Mostra boton de i comandi dezviłupador",
|
||||
"showInGamePingText": "Mostra łatensa de'l zugo",
|
||||
"showPlayerNamesText": "Mostra nomi zugadori",
|
||||
|
|
@ -1301,7 +1344,7 @@
|
|||
"shareText": "Sparpagna",
|
||||
"sharingText": "Sparpagnasion...",
|
||||
"showText": "Mostra",
|
||||
"signInForPromoCodeText": "Conétate co un account par poder far funsionar el còdaze.",
|
||||
"signInForPromoCodeText": "Par far funsionar el còdaze acedi co un account.",
|
||||
"signInWithGameCenterText": "Par doparar un account Game Center,\nconétate da rento l'apl Game Center.",
|
||||
"singleGamePlaylistNameText": "Tuti \"${GAME}\"",
|
||||
"singlePlayerCountText": "1 zugador",
|
||||
|
|
@ -1391,6 +1434,7 @@
|
|||
"testBuildValidatedText": "Varsion de proa aposto. Gòdateła!",
|
||||
"thankYouText": "Grasie par el to suporto! Gùstate el zugo!",
|
||||
"threeKillText": "NO GHE N'È 2 SENSA 3!!",
|
||||
"ticketsDescriptionText": "I biłieti se pol usar par sbloccar parsonaji,\nmappe, minigiochi e altre robe ne la botega.\n\nI biłieti se pol trovar nelle càse\no vìnzi ne le campagne, nei tornei o nei obietivi.",
|
||||
"timeBonusText": "Tenpo bonus",
|
||||
"timeElapsedText": "Tenpo pasà",
|
||||
"timeExpiredText": "Tenpo fenìo",
|
||||
|
|
@ -1401,10 +1445,23 @@
|
|||
"tipText": "Drita",
|
||||
"titleText": "BombSquad",
|
||||
"titleVRText": "BombSquad VR",
|
||||
"tokens": {
|
||||
"getTokensText": "Ottieni Getoni",
|
||||
"notEnoughTokensText": "Getoni insufficienti!",
|
||||
"numTokensText": "${COUNT} Getoni",
|
||||
"shinyNewCurrencyText": "Ła nova moneta brillante de BombSquad.",
|
||||
"tokenPack1Text": "Pachetto de Getoni Pico",
|
||||
"tokenPack2Text": "Pachetto de Getoni Mezo",
|
||||
"tokenPack3Text": "Pachetto de Getoni Grande",
|
||||
"tokenPack4Text": "Pachetto di Getoni Gigante",
|
||||
"tokensDescriptionText": "I getoni se usa par velocizzar el sbloco de le càse\ne par altri vantagi de'l zogo e de'l conto.\n\nTe pol vinzer getoni nel zogo o comprargli\nin pacchetti. O cronpando el Pass Dorà par getoni\ninfiniti e no sentirli mai più.",
|
||||
"youHaveGoldPassText": "Te gha na Pass Dorà.\nTuti i conpra de gettoni xè gratis.\nGodeli!"
|
||||
},
|
||||
"topFriendsText": "Mejori amighi",
|
||||
"tournamentCheckingStateText": "Verìfega stado de'l tornèo: speta n'àtemo...",
|
||||
"tournamentEndedText": "'Sto tornèo el ze fenìo. A ghin tacarà presto uno novo.",
|
||||
"tournamentEntryText": "Entrada tornèo",
|
||||
"tournamentFinalStandingsText": "Posti Finali",
|
||||
"tournamentResultsRecentText": "Rezultài tornèi resenti",
|
||||
"tournamentStandingsText": "Clasìfega tornèo",
|
||||
"tournamentText": "Tornèo",
|
||||
|
|
@ -1460,6 +1517,18 @@
|
|||
"Uber Onslaught": "Dezìo - ultra",
|
||||
"Uber Runaround": "Mena torno - ultra"
|
||||
},
|
||||
"displayItemNames": {
|
||||
"${C} Tickets": "${C} Biłieti",
|
||||
"${C} Tokens": "${C} Getoni",
|
||||
"Chest": "Càsa",
|
||||
"L1 Chest": "Càsa L1",
|
||||
"L2 Chest": "Càsa L2",
|
||||
"L3 Chest": "Càsa L3",
|
||||
"L4 Chest": "Càsa L4",
|
||||
"L5 Chest": "Càsa L5",
|
||||
"L6 Chest": "Càsa L6",
|
||||
"Unknown Chest": "Càsa Sconossùa"
|
||||
},
|
||||
"gameDescriptions": {
|
||||
"Be the chosen one for a length of time to win.\nKill the chosen one to become it.": "Copa l'ełeto par ciapar el só posto!\nPar vìnsar resta l'ełeto par un serto tenpo.",
|
||||
"Bomb as many targets as you can.": "Bonbarda tuti i sentri che te połi!",
|
||||
|
|
@ -1564,6 +1633,7 @@
|
|||
"Korean": "Corean",
|
||||
"Malay": "Maleze",
|
||||
"Persian": "Persian",
|
||||
"PirateSpeak": "Léngua de pirati",
|
||||
"Polish": "Połaco",
|
||||
"Portuguese": "Portogheze",
|
||||
"Romanian": "Romen",
|
||||
|
|
@ -1648,7 +1718,9 @@
|
|||
"Max number of profiles reached.": "Nùmaro màsemo de profiłi pasà.",
|
||||
"Maximum friend code rewards reached.": "Brincà el nùmaro màsemo de premi da'l còdaze amigo.",
|
||||
"Message is too long.": "Mesajo masa łongo.",
|
||||
"New tournament result!": "Novo risultato de'l tornèo!",
|
||||
"No servers are available. Please try again soon.": "Gnaun server disponìbiłe. Proa pì tardi.",
|
||||
"No slots available. Free a slot and try again.": "No ghe xe spazi disponibiłi, łibera un spazi e riprova.",
|
||||
"Profile \"${NAME}\" upgraded successfully.": "Profiło \"${NAME}\" mejorà co suceso.",
|
||||
"Profile could not be upgraded.": "El profiło no'l połe miga èsar mejorà.",
|
||||
"Purchase successful!": "Cronpà co suceso!",
|
||||
|
|
@ -1658,6 +1730,7 @@
|
|||
"Sorry, this code has already been used.": "Ne despiaze, 'sto còdaze el ze dezà stà doparà.",
|
||||
"Sorry, this code has expired.": "Ne despiaze, ła vałidità de 'sto còdaze ła ze terminada.",
|
||||
"Sorry, this code only works for new accounts.": "Ne despiaze, 'sto còdaze el funsiona soło so i account novi.",
|
||||
"Sorry, this has expired.": "Scusa, 'sto xe scadù.",
|
||||
"Still searching for nearby servers; please try again soon.": "Reserca de server visini in corso: proa danovo pì tardi.",
|
||||
"Temporarily unavailable; please try again later.": "Par deso miga disponìbiłe: proa danovo pì tardi.",
|
||||
"The tournament ended before you finished.": "El tornèo el ze terminà prima che te ghesi fenìo.",
|
||||
|
|
@ -1669,19 +1742,27 @@
|
|||
"Tournaments require ${VERSION} or newer": "Par i tornèi serve ła varsion ${VERSION} o una pì resente",
|
||||
"Unlink ${ACCOUNT} from this account?\nAll data on ${ACCOUNT} will be reset.\n(except for achievements in some cases)": "Vutu descołegar l'account ${ACCOUNT} da 'sto account?\nTuti i dati de ${ACCOUNT} i vegnarà ełimenài.\n(obietivi a parte in calche cazo)",
|
||||
"WARNING: complaints of hacking have been issued against your account.\nAccounts found to be hacking will be banned. Please play fair.": "AVERTENSA: el to account el ze stà segnałà par el dòparo de truchi.\nI zugaduri catài a doparar truchi i vegnarà blocài. Zuga da gałantomo.",
|
||||
"Wait reduced!": "Spèta calà!",
|
||||
"Would you like to link your device account to this one?\n\nYour device account is ${ACCOUNT1}\nThis account is ${ACCOUNT2}\n\nThis will allow you to keep your existing progress.\nWarning: this cannot be undone!\n": "Ghetu caro cołegar el tó account łogałe co 'sto cuà?\n\nEl tó account łogałe el ze ${ACCOUNT1}\n'Sto account el ze ${ACCOUNT2}\n\n'Sta oparasion ła te parmetarà de mantegner i tó progresi ezistenti.\nOcio: 'sta asion no ła połe pì èsar anułada!",
|
||||
"You already own this!": "Dezà cronpà!",
|
||||
"You can join in ${COUNT} seconds.": "Te połi zontarte tenpo ${COUNT} segondi.",
|
||||
"You don't have enough tickets for this!": "A no te ghè miga biłieti che basta par cronparlo!",
|
||||
"You don't own that.": "Gnancora cronpà!",
|
||||
"You got ${COUNT} tickets!": "A te ghè otegnesto ${COUNT} biłieti!",
|
||||
"You got ${COUNT} tokens!": "A te ghè otegnesto ${COUNT} getoni!",
|
||||
"You got a ${ITEM}!": "A te ghè otegnesto un ${ITEM}!",
|
||||
"You got a chest!": "A te ghè otegnesto 'na càsa!",
|
||||
"You got an achievement reward!": "A te ghè otegnesto 'na recompensa da obietivo!",
|
||||
"You have been promoted to a new league; congratulations!": "Promosion a ła łega suparior: congratułasion!",
|
||||
"You lost a chest! (All your chest slots were full)": "Te gh'è perduda 'na càsa!(Tuti i spazi càsa jera pieni)",
|
||||
"You must update the app to view this.": "Bisogna ajornà pa' vedare",
|
||||
"You must update to a newer version of the app to do this.": "Par ndar vanti A te ghè da ajornar l'apl a ła varsion pì resente.",
|
||||
"You must update to the newest version of the game to do this.": "Par ndar vanti A te ghè da ajornar el zugo a ła varsion pì resente.",
|
||||
"You must wait a few seconds before entering a new code.": "A te ghè da spetar calche segondo prima de insarir un còdaze novo.",
|
||||
"You placed #${RANK} in a tournament!": "Te se ze clasificà #${RANK} ne'l tornèo!",
|
||||
"You ranked #${RANK} in the last tournament. Thanks for playing!": "Inte'l tornèo ùltemo A te si rivà #${RANK}. Grasie par ver zugà!",
|
||||
"Your account was rejected. Are you signed in?": "El to account el ze stà refudà. Ghetu fato l'aceso?",
|
||||
"Your ad views are not registering. Ad options will be limited for a while.": "Łe vostre vixuałixasion de l’inserission no łe se registra. Łe opsion publicitarie łe sarà limitae pa un fià.",
|
||||
"Your copy of the game has been modified.\nPlease revert any changes and try again.": "Ła to copia de'l zugo ła ze stada modifegada.\nPar piaser, anuła łe modìfeghe e proa danovo.",
|
||||
"Your friend code was used by ${ACCOUNT}": "El to còdaze amigo el ze stà doparà da ${ACCOUNT}"
|
||||
},
|
||||
|
|
@ -1849,6 +1930,7 @@
|
|||
"usesExternalControllerText": "'Sto zugo el dòpara un controłador esterno cofà dispozidivo de entrada.",
|
||||
"usingItunesText": "Doparar l'apl de mùzega par el son de fondo...",
|
||||
"v2AccountLinkingInfoText": "Par łigar un account V2 dòpara el boton 'Jestisi account'.",
|
||||
"v2AccountRequiredText": "Questo gà bisogno de un account V2. Agiorna el to account e riprova.",
|
||||
"validatingTestBuildText": "Confermasion varsion de proa...",
|
||||
"viaText": "co",
|
||||
"victoryText": "Vitoria!",
|
||||
|
|
@ -1915,5 +1997,6 @@
|
|||
},
|
||||
"yesAllowText": "Sì, parmeti!",
|
||||
"yourBestScoresText": "I to punteji mejo",
|
||||
"yourBestTimesText": "I to tenpi mejo"
|
||||
"yourBestTimesText": "I to tenpi mejo",
|
||||
"yourPrizeText": "El to premio:"
|
||||
}
|
||||
723
dist/ba_data/data/languages/vietnamese.json
vendored
723
dist/ba_data/data/languages/vietnamese.json
vendored
File diff suppressed because it is too large
Load diff
|
|
@ -1,4 +1,4 @@
|
|||
from .core import contents, where
|
||||
|
||||
__all__ = ["contents", "where"]
|
||||
__version__ = "2024.02.02"
|
||||
__version__ = "2025.01.31"
|
||||
|
|
|
|||
391
dist/ba_data/python-site-packages/certifi/cacert.pem
vendored
391
dist/ba_data/python-site-packages/certifi/cacert.pem
vendored
|
|
@ -474,47 +474,6 @@ ZMEBnunKoGqYDs/YYPIvSbjkQuE4NRb0yG5P94FW6LqjviOvrv1vA+ACOzB2+htt
|
|||
Qc8Bsem4yWb02ybzOqR08kkkW8mw0FfB+j564ZfJ
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
# Issuer: CN=SwissSign Silver CA - G2 O=SwissSign AG
|
||||
# Subject: CN=SwissSign Silver CA - G2 O=SwissSign AG
|
||||
# Label: "SwissSign Silver CA - G2"
|
||||
# Serial: 5700383053117599563
|
||||
# MD5 Fingerprint: e0:06:a1:c9:7d:cf:c9:fc:0d:c0:56:75:96:d8:62:13
|
||||
# SHA1 Fingerprint: 9b:aa:e5:9f:56:ee:21:cb:43:5a:be:25:93:df:a7:f0:40:d1:1d:cb
|
||||
# SHA256 Fingerprint: be:6c:4d:a2:bb:b9:ba:59:b6:f3:93:97:68:37:42:46:c3:c0:05:99:3f:a9:8f:02:0d:1d:ed:be:d4:8a:81:d5
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFvTCCA6WgAwIBAgIITxvUL1S7L0swDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UE
|
||||
BhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMYU3dpc3NTaWdu
|
||||
IFNpbHZlciBDQSAtIEcyMB4XDTA2MTAyNTA4MzI0NloXDTM2MTAyNTA4MzI0Nlow
|
||||
RzELMAkGA1UEBhMCQ0gxFTATBgNVBAoTDFN3aXNzU2lnbiBBRzEhMB8GA1UEAxMY
|
||||
U3dpc3NTaWduIFNpbHZlciBDQSAtIEcyMIICIjANBgkqhkiG9w0BAQEFAAOCAg8A
|
||||
MIICCgKCAgEAxPGHf9N4Mfc4yfjDmUO8x/e8N+dOcbpLj6VzHVxumK4DV644N0Mv
|
||||
Fz0fyM5oEMF4rhkDKxD6LHmD9ui5aLlV8gREpzn5/ASLHvGiTSf5YXu6t+WiE7br
|
||||
YT7QbNHm+/pe7R20nqA1W6GSy/BJkv6FCgU+5tkL4k+73JU3/JHpMjUi0R86TieF
|
||||
nbAVlDLaYQ1HTWBCrpJH6INaUFjpiou5XaHc3ZlKHzZnu0jkg7Y360g6rw9njxcH
|
||||
6ATK72oxh9TAtvmUcXtnZLi2kUpCe2UuMGoM9ZDulebyzYLs2aFK7PayS+VFheZt
|
||||
eJMELpyCbTapxDFkH4aDCyr0NQp4yVXPQbBH6TCfmb5hqAaEuSh6XzjZG6k4sIN/
|
||||
c8HDO0gqgg8hm7jMqDXDhBuDsz6+pJVpATqJAHgE2cn0mRmrVn5bi4Y5FZGkECwJ
|
||||
MoBgs5PAKrYYC51+jUnyEEp/+dVGLxmSo5mnJqy7jDzmDrxHB9xzUfFwZC8I+bRH
|
||||
HTBsROopN4WSaGa8gzj+ezku01DwH/teYLappvonQfGbGHLy9YR0SslnxFSuSGTf
|
||||
jNFusB3hB48IHpmccelM2KX3RxIfdNFRnobzwqIjQAtz20um53MGjMGg6cFZrEb6
|
||||
5i/4z3GcRm25xBWNOHkDRUjvxF3XCO6HOSKGsg0PWEP3calILv3q1h8CAwEAAaOB
|
||||
rDCBqTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQU
|
||||
F6DNweRBtjpbO8tFnb0cwpj6hlgwHwYDVR0jBBgwFoAUF6DNweRBtjpbO8tFnb0c
|
||||
wpj6hlgwRgYDVR0gBD8wPTA7BglghXQBWQEDAQEwLjAsBggrBgEFBQcCARYgaHR0
|
||||
cDovL3JlcG9zaXRvcnkuc3dpc3NzaWduLmNvbS8wDQYJKoZIhvcNAQEFBQADggIB
|
||||
AHPGgeAn0i0P4JUw4ppBf1AsX19iYamGamkYDHRJ1l2E6kFSGG9YrVBWIGrGvShp
|
||||
WJHckRE1qTodvBqlYJ7YH39FkWnZfrt4csEGDyrOj4VwYaygzQu4OSlWhDJOhrs9
|
||||
xCrZ1x9y7v5RoSJBsXECYxqCsGKrXlcSH9/L3XWgwF15kIwb4FDm3jH+mHtwX6WQ
|
||||
2K34ArZv02DdQEsixT2tOnqfGhpHkXkzuoLcMmkDlm4fS/Bx/uNncqCxv1yL5PqZ
|
||||
IseEuRuNI5c/7SXgz2W79WEE790eslpBIlqhn10s6FvJbakMDHiqYMZWjwFaDGi8
|
||||
aRl5xB9+lwW/xekkUV7U1UtT7dkjWjYDZaPBA61BMPNGG4WQr2W11bHkFlt4dR2X
|
||||
em1ZqSqPe97Dh4kQmUlzeMg9vVE1dCrV8X5pGyq7O70luJpaPXJhkGaH7gzWTdQR
|
||||
dAtq/gsD/KNVV4n+SsuuWxcFyPKNIzFTONItaj+CuY0IavdeQXRuwxF+B6wpYJE/
|
||||
OMpXEA29MC/HpeZBoNquBYeaoKRlbEwJDIm6uNO5wJOKMPqN5ZprFQFOZ6raYlY+
|
||||
hAhm0sQ2fac+EPyI4NSA5QC9qvNOBqN6avlicuMJT+ubDgEj8Z+7fNzcbBGXJbLy
|
||||
tGMU0gYqZ4yD9c7qB9iaah7s5Aq7KkzrCWA5zspi2C5u
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
# Issuer: CN=SecureTrust CA O=SecureTrust Corporation
|
||||
# Subject: CN=SecureTrust CA O=SecureTrust Corporation
|
||||
# Label: "SecureTrust CA"
|
||||
|
|
@ -763,35 +722,6 @@ uLjbvrW5KfnaNwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2
|
|||
XjG4Kvte9nHfRCaexOYNkbQudZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
# Issuer: CN=SecureSign RootCA11 O=Japan Certification Services, Inc.
|
||||
# Subject: CN=SecureSign RootCA11 O=Japan Certification Services, Inc.
|
||||
# Label: "SecureSign RootCA11"
|
||||
# Serial: 1
|
||||
# MD5 Fingerprint: b7:52:74:e2:92:b4:80:93:f2:75:e4:cc:d7:f2:ea:26
|
||||
# SHA1 Fingerprint: 3b:c4:9f:48:f8:f3:73:a0:9c:1e:bd:f8:5b:b1:c3:65:c7:d8:11:b3
|
||||
# SHA256 Fingerprint: bf:0f:ee:fb:9e:3a:58:1a:d5:f9:e9:db:75:89:98:57:43:d2:61:08:5c:4d:31:4f:6f:5d:72:59:aa:42:16:12
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDEr
|
||||
MCkGA1UEChMiSmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoG
|
||||
A1UEAxMTU2VjdXJlU2lnbiBSb290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0
|
||||
MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSswKQYDVQQKEyJKYXBhbiBDZXJ0aWZp
|
||||
Y2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1cmVTaWduIFJvb3RD
|
||||
QTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvLTJsz
|
||||
i1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8
|
||||
h9uuywGOwvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOV
|
||||
MdrAG/LuYpmGYz+/3ZMqg6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9
|
||||
UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rPO7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni
|
||||
8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitAbpSACW22s293bzUIUPsC
|
||||
h8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZXt94wDgYD
|
||||
VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEB
|
||||
AKChOBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xm
|
||||
KbabfSVSSUOrTC4rbnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQ
|
||||
X5Ucv+2rIrVls4W6ng+4reV6G4pQOh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWr
|
||||
QbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01y8hSyn+B/tlr0/cR7SXf+Of5
|
||||
pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061lgeLKBObjBmN
|
||||
QSdJQO7e5iNEOdyhIta6A/I=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
# Issuer: CN=Microsec e-Szigno Root CA 2009 O=Microsec Ltd.
|
||||
# Subject: CN=Microsec e-Szigno Root CA 2009 O=Microsec Ltd.
|
||||
# Label: "Microsec e-Szigno Root CA 2009"
|
||||
|
|
@ -3100,50 +3030,6 @@ LJstxabArahH9CdMOA0uG0k7UvToiIMrVCjU8jVStDKDYmlkDJGcn5fqdBb9HxEG
|
|||
mpv0
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
# Issuer: CN=Entrust Root Certification Authority - G4 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2015 Entrust, Inc. - for authorized use only
|
||||
# Subject: CN=Entrust Root Certification Authority - G4 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2015 Entrust, Inc. - for authorized use only
|
||||
# Label: "Entrust Root Certification Authority - G4"
|
||||
# Serial: 289383649854506086828220374796556676440
|
||||
# MD5 Fingerprint: 89:53:f1:83:23:b7:7c:8e:05:f1:8c:71:38:4e:1f:88
|
||||
# SHA1 Fingerprint: 14:88:4e:86:26:37:b0:26:af:59:62:5c:40:77:ec:35:29:ba:96:01
|
||||
# SHA256 Fingerprint: db:35:17:d1:f6:73:2a:2d:5a:b9:7c:53:3e:c7:07:79:ee:32:70:a6:2f:b4:ac:42:38:37:24:60:e6:f0:1e:88
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIGSzCCBDOgAwIBAgIRANm1Q3+vqTkPAAAAAFVlrVgwDQYJKoZIhvcNAQELBQAw
|
||||
gb4xCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQL
|
||||
Ex9TZWUgd3d3LmVudHJ1c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykg
|
||||
MjAxNSBFbnRydXN0LCBJbmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMjAw
|
||||
BgNVBAMTKUVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEc0
|
||||
MB4XDTE1MDUyNzExMTExNloXDTM3MTIyNzExNDExNlowgb4xCzAJBgNVBAYTAlVT
|
||||
MRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1
|
||||
c3QubmV0L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxNSBFbnRydXN0LCBJ
|
||||
bmMuIC0gZm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMjAwBgNVBAMTKUVudHJ1c3Qg
|
||||
Um9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEc0MIICIjANBgkqhkiG9w0B
|
||||
AQEFAAOCAg8AMIICCgKCAgEAsewsQu7i0TD/pZJH4i3DumSXbcr3DbVZwbPLqGgZ
|
||||
2K+EbTBwXX7zLtJTmeH+H17ZSK9dE43b/2MzTdMAArzE+NEGCJR5WIoV3imz/f3E
|
||||
T+iq4qA7ec2/a0My3dl0ELn39GjUu9CH1apLiipvKgS1sqbHoHrmSKvS0VnM1n4j
|
||||
5pds8ELl3FFLFUHtSUrJ3hCX1nbB76W1NhSXNdh4IjVS70O92yfbYVaCNNzLiGAM
|
||||
C1rlLAHGVK/XqsEQe9IFWrhAnoanw5CGAlZSCXqc0ieCU0plUmr1POeo8pyvi73T
|
||||
DtTUXm6Hnmo9RR3RXRv06QqsYJn7ibT/mCzPfB3pAqoEmh643IhuJbNsZvc8kPNX
|
||||
wbMv9W3y+8qh+CmdRouzavbmZwe+LGcKKh9asj5XxNMhIWNlUpEbsZmOeX7m640A
|
||||
2Vqq6nPopIICR5b+W45UYaPrL0swsIsjdXJ8ITzI9vF01Bx7owVV7rtNOzK+mndm
|
||||
nqxpkCIHH2E6lr7lmk/MBTwoWdPBDFSoWWG9yHJM6Nyfh3+9nEg2XpWjDrk4JFX8
|
||||
dWbrAuMINClKxuMrLzOg2qOGpRKX/YAr2hRC45K9PvJdXmd0LhyIRyk0X+IyqJwl
|
||||
N4y6mACXi0mWHv0liqzc2thddG5msP9E36EYxr5ILzeUePiVSj9/E15dWf10hkNj
|
||||
c0kCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYD
|
||||
VR0OBBYEFJ84xFYjwznooHFs6FRM5Og6sb9nMA0GCSqGSIb3DQEBCwUAA4ICAQAS
|
||||
5UKme4sPDORGpbZgQIeMJX6tuGguW8ZAdjwD+MlZ9POrYs4QjbRaZIxowLByQzTS
|
||||
Gwv2LFPSypBLhmb8qoMi9IsabyZIrHZ3CL/FmFz0Jomee8O5ZDIBf9PD3Vht7LGr
|
||||
hFV0d4QEJ1JrhkzO3bll/9bGXp+aEJlLdWr+aumXIOTkdnrG0CSqkM0gkLpHZPt/
|
||||
B7NTeLUKYvJzQ85BK4FqLoUWlFPUa19yIqtRLULVAJyZv967lDtX/Zr1hstWO1uI
|
||||
AeV8KEsD+UmDfLJ/fOPtjqF/YFOOVZ1QNBIPt5d7bIdKROf1beyAN/BYGW5KaHbw
|
||||
H5Lk6rWS02FREAutp9lfx1/cH6NcjKF+m7ee01ZvZl4HliDtC3T7Zk6LERXpgUl+
|
||||
b7DUUH8i119lAg2m9IUe2K4GS0qn0jFmwvjO5QimpAKWRGhXxNUzzxkvFMSUHHuk
|
||||
2fCfDrGA4tGeEWSpiBE6doLlYsKA2KSD7ZPvfC+QsDJMlhVoSFLUmQjAJOgc47Ol
|
||||
IQ6SwJAfzyBfyjs4x7dtOvPmRLgOMWuIjnDrnBdSqEGULoe256YSxXXfW8AKbnuk
|
||||
5F6G+TaU33fD6Q3AOfF5u0aOq0NZJ7cguyPpVkAh7DE9ZapD8j3fcEThuk0mEDuY
|
||||
n/PIjhs4ViFqUZPTkcpG2om3PVODLAgfi49T3f+sHw==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
# Issuer: CN=Microsoft ECC Root Certificate Authority 2017 O=Microsoft Corporation
|
||||
# Subject: CN=Microsoft ECC Root Certificate Authority 2017 O=Microsoft Corporation
|
||||
# Label: "Microsoft ECC Root Certificate Authority 2017"
|
||||
|
|
@ -4254,46 +4140,6 @@ ut6Dacpps6kFtZaSF4fC0urQe87YQVt8rgIwRt7qy12a7DLCZRawTDBcMPPaTnOG
|
|||
BtjOiQRINzf43TNRnXCve1XYAS59BWQOhriR
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
# Issuer: CN=Security Communication RootCA3 O=SECOM Trust Systems CO.,LTD.
|
||||
# Subject: CN=Security Communication RootCA3 O=SECOM Trust Systems CO.,LTD.
|
||||
# Label: "Security Communication RootCA3"
|
||||
# Serial: 16247922307909811815
|
||||
# MD5 Fingerprint: 1c:9a:16:ff:9e:5c:e0:4d:8a:14:01:f4:35:5d:29:26
|
||||
# SHA1 Fingerprint: c3:03:c8:22:74:92:e5:61:a2:9c:5f:79:91:2b:1e:44:13:91:30:3a
|
||||
# SHA256 Fingerprint: 24:a5:5c:2a:b0:51:44:2d:06:17:76:65:41:23:9a:4a:d0:32:d7:c5:51:75:aa:34:ff:de:2f:bc:4f:5c:52:94
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFfzCCA2egAwIBAgIJAOF8N0D9G/5nMA0GCSqGSIb3DQEBDAUAMF0xCzAJBgNV
|
||||
BAYTAkpQMSUwIwYDVQQKExxTRUNPTSBUcnVzdCBTeXN0ZW1zIENPLixMVEQuMScw
|
||||
JQYDVQQDEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTMwHhcNMTYwNjE2
|
||||
MDYxNzE2WhcNMzgwMTE4MDYxNzE2WjBdMQswCQYDVQQGEwJKUDElMCMGA1UEChMc
|
||||
U0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UEAxMeU2VjdXJpdHkg
|
||||
Q29tbXVuaWNhdGlvbiBSb290Q0EzMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIIC
|
||||
CgKCAgEA48lySfcw3gl8qUCBWNO0Ot26YQ+TUG5pPDXC7ltzkBtnTCHsXzW7OT4r
|
||||
CmDvu20rhvtxosis5FaU+cmvsXLUIKx00rgVrVH+hXShuRD+BYD5UpOzQD11EKzA
|
||||
lrenfna84xtSGc4RHwsENPXY9Wk8d/Nk9A2qhd7gCVAEF5aEt8iKvE1y/By7z/MG
|
||||
TfmfZPd+pmaGNXHIEYBMwXFAWB6+oHP2/D5Q4eAvJj1+XCO1eXDe+uDRpdYMQXF7
|
||||
9+qMHIjH7Iv10S9VlkZ8WjtYO/u62C21Jdp6Ts9EriGmnpjKIG58u4iFW/vAEGK7
|
||||
8vknR+/RiTlDxN/e4UG/VHMgly1s2vPUB6PmudhvrvyMGS7TZ2crldtYXLVqAvO4
|
||||
g160a75BflcJdURQVc1aEWEhCmHCqYj9E7wtiS/NYeCVvsq1e+F7NGcLH7YMx3we
|
||||
GVPKp7FKFSBWFHA9K4IsD50VHUeAR/94mQ4xr28+j+2GaR57GIgUssL8gjMunEst
|
||||
+3A7caoreyYn8xrC3PsXuKHqy6C0rtOUfnrQq8PsOC0RLoi/1D+tEjtCrI8Cbn3M
|
||||
0V9hvqG8OmpI6iZVIhZdXw3/JzOfGAN0iltSIEdrRU0id4xVJ/CvHozJgyJUt5rQ
|
||||
T9nO/NkuHJYosQLTA70lUhw0Zk8jq/R3gpYd0VcwCBEF/VfR2ccCAwEAAaNCMEAw
|
||||
HQYDVR0OBBYEFGQUfPxYchamCik0FW8qy7z8r6irMA4GA1UdDwEB/wQEAwIBBjAP
|
||||
BgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3DQEBDAUAA4ICAQDcAiMI4u8hOscNtybS
|
||||
YpOnpSNyByCCYN8Y11StaSWSntkUz5m5UoHPrmyKO1o5yGwBQ8IibQLwYs1OY0PA
|
||||
FNr0Y/Dq9HHuTofjcan0yVflLl8cebsjqodEV+m9NU1Bu0soo5iyG9kLFwfl9+qd
|
||||
9XbXv8S2gVj/yP9kaWJ5rW4OH3/uHWnlt3Jxs/6lATWUVCvAUm2PVcTJ0rjLyjQI
|
||||
UYWg9by0F1jqClx6vWPGOi//lkkZhOpn2ASxYfQAW0q3nHE3GYV5v4GwxxMOdnE+
|
||||
OoAGrgYWp421wsTL/0ClXI2lyTrtcoHKXJg80jQDdwj98ClZXSEIx2C/pHF7uNke
|
||||
gr4Jr2VvKKu/S7XuPghHJ6APbw+LP6yVGPO5DtxnVW5inkYO0QR4ynKudtml+LLf
|
||||
iAlhi+8kTtFZP1rUPcmTPCtk9YENFpb3ksP+MW/oKjJ0DvRMmEoYDjBU1cXrvMUV
|
||||
nuiZIesnKwkK2/HmcBhWuwzkvvnoEKQTkrgc4NtnHVMDpCKn3F2SEDzq//wbEBrD
|
||||
2NCcnWXL0CsnMQMeNuE9dnUM/0Umud1RvCPHX9jYhxBAEg09ODfnRDwYwFMJZI//
|
||||
1ZqmfHAuc1Uh6N//g7kdPjIe1qZ9LPFm6Vwdp6POXiUyK+OVrCoHzrQoeIY8Laad
|
||||
TdJ0MN1kURXbg4NR16/9M51NZg==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
# Issuer: CN=Security Communication ECC RootCA1 O=SECOM Trust Systems CO.,LTD.
|
||||
# Subject: CN=Security Communication ECC RootCA1 O=SECOM Trust Systems CO.,LTD.
|
||||
# Label: "Security Communication ECC RootCA1"
|
||||
|
|
@ -4812,3 +4658,240 @@ X273CXE2whJdV/LItM3z7gLfEdxquVeEHVlNjM7IDiPCtyaaEBRx/pOyiriA8A4Q
|
|||
ntOoUAw3gi/q4Iqd4Sw5/7W0cwDk90imc6y/st53BIe0o82bNSQ3+pCTE4FCxpgm
|
||||
dTdmQRCsu/WU48IxK63nI1bMNSWSs1A=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
# Issuer: CN=FIRMAPROFESIONAL CA ROOT-A WEB O=Firmaprofesional SA
|
||||
# Subject: CN=FIRMAPROFESIONAL CA ROOT-A WEB O=Firmaprofesional SA
|
||||
# Label: "FIRMAPROFESIONAL CA ROOT-A WEB"
|
||||
# Serial: 65916896770016886708751106294915943533
|
||||
# MD5 Fingerprint: 82:b2:ad:45:00:82:b0:66:63:f8:5f:c3:67:4e:ce:a3
|
||||
# SHA1 Fingerprint: a8:31:11:74:a6:14:15:0d:ca:77:dd:0e:e4:0c:5d:58:fc:a0:72:a5
|
||||
# SHA256 Fingerprint: be:f2:56:da:f2:6e:9c:69:bd:ec:16:02:35:97:98:f3:ca:f7:18:21:a0:3e:01:82:57:c5:3c:65:61:7f:3d:4a
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICejCCAgCgAwIBAgIQMZch7a+JQn81QYehZ1ZMbTAKBggqhkjOPQQDAzBuMQsw
|
||||
CQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UE
|
||||
YQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENB
|
||||
IFJPT1QtQSBXRUIwHhcNMjIwNDA2MDkwMTM2WhcNNDcwMzMxMDkwMTM2WjBuMQsw
|
||||
CQYDVQQGEwJFUzEcMBoGA1UECgwTRmlybWFwcm9mZXNpb25hbCBTQTEYMBYGA1UE
|
||||
YQwPVkFURVMtQTYyNjM0MDY4MScwJQYDVQQDDB5GSVJNQVBST0ZFU0lPTkFMIENB
|
||||
IFJPT1QtQSBXRUIwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARHU+osEaR3xyrq89Zf
|
||||
e9MEkVz6iMYiuYMQYneEMy3pA4jU4DP37XcsSmDq5G+tbbT4TIqk5B/K6k84Si6C
|
||||
cyvHZpsKjECcfIr28jlgst7L7Ljkb+qbXbdTkBgyVcUgt5SjYzBhMA8GA1UdEwEB
|
||||
/wQFMAMBAf8wHwYDVR0jBBgwFoAUk+FDY1w8ndYn81LsF7Kpryz3dvgwHQYDVR0O
|
||||
BBYEFJPhQ2NcPJ3WJ/NS7Beyqa8s93b4MA4GA1UdDwEB/wQEAwIBBjAKBggqhkjO
|
||||
PQQDAwNoADBlAjAdfKR7w4l1M+E7qUW/Runpod3JIha3RxEL2Jq68cgLcFBTApFw
|
||||
hVmpHqTm6iMxoAACMQD94vizrxa5HnPEluPBMBnYfubDl94cT7iJLzPrSA8Z94dG
|
||||
XSaQpYXFuXqUPoeovQA=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
# Issuer: CN=TWCA CYBER Root CA O=TAIWAN-CA OU=Root CA
|
||||
# Subject: CN=TWCA CYBER Root CA O=TAIWAN-CA OU=Root CA
|
||||
# Label: "TWCA CYBER Root CA"
|
||||
# Serial: 85076849864375384482682434040119489222
|
||||
# MD5 Fingerprint: 0b:33:a0:97:52:95:d4:a9:fd:bb:db:6e:a3:55:5b:51
|
||||
# SHA1 Fingerprint: f6:b1:1c:1a:83:38:e9:7b:db:b3:a8:c8:33:24:e0:2d:9c:7f:26:66
|
||||
# SHA256 Fingerprint: 3f:63:bb:28:14:be:17:4e:c8:b6:43:9c:f0:8d:6d:56:f0:b7:c4:05:88:3a:56:48:a3:34:42:4d:6b:3e:c5:58
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFjTCCA3WgAwIBAgIQQAE0jMIAAAAAAAAAATzyxjANBgkqhkiG9w0BAQwFADBQ
|
||||
MQswCQYDVQQGEwJUVzESMBAGA1UEChMJVEFJV0FOLUNBMRAwDgYDVQQLEwdSb290
|
||||
IENBMRswGQYDVQQDExJUV0NBIENZQkVSIFJvb3QgQ0EwHhcNMjIxMTIyMDY1NDI5
|
||||
WhcNNDcxMTIyMTU1OTU5WjBQMQswCQYDVQQGEwJUVzESMBAGA1UEChMJVEFJV0FO
|
||||
LUNBMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJUV0NBIENZQkVSIFJvb3Qg
|
||||
Q0EwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDG+Moe2Qkgfh1sTs6P
|
||||
40czRJzHyWmqOlt47nDSkvgEs1JSHWdyKKHfi12VCv7qze33Kc7wb3+szT3vsxxF
|
||||
avcokPFhV8UMxKNQXd7UtcsZyoC5dc4pztKFIuwCY8xEMCDa6pFbVuYdHNWdZsc/
|
||||
34bKS1PE2Y2yHer43CdTo0fhYcx9tbD47nORxc5zb87uEB8aBs/pJ2DFTxnk684i
|
||||
JkXXYJndzk834H/nY62wuFm40AZoNWDTNq5xQwTxaWV4fPMf88oon1oglWa0zbfu
|
||||
j3ikRRjpJi+NmykosaS3Om251Bw4ckVYsV7r8Cibt4LK/c/WMw+f+5eesRycnupf
|
||||
Xtuq3VTpMCEobY5583WSjCb+3MX2w7DfRFlDo7YDKPYIMKoNM+HvnKkHIuNZW0CP
|
||||
2oi3aQiotyMuRAlZN1vH4xfyIutuOVLF3lSnmMlLIJXcRolftBL5hSmO68gnFSDA
|
||||
S9TMfAxsNAwmmyYxpjyn9tnQS6Jk/zuZQXLB4HCX8SS7K8R0IrGsayIyJNN4KsDA
|
||||
oS/xUgXJP+92ZuJF2A09rZXIx4kmyA+upwMu+8Ff+iDhcK2wZSA3M2Cw1a/XDBzC
|
||||
kHDXShi8fgGwsOsVHkQGzaRP6AzRwyAQ4VRlnrZR0Bp2a0JaWHY06rc3Ga4udfmW
|
||||
5cFZ95RXKSWNOkyrTZpB0F8mAwIDAQABo2MwYTAOBgNVHQ8BAf8EBAMCAQYwDwYD
|
||||
VR0TAQH/BAUwAwEB/zAfBgNVHSMEGDAWgBSdhWEUfMFib5do5E83QOGt4A1WNzAd
|
||||
BgNVHQ4EFgQUnYVhFHzBYm+XaORPN0DhreANVjcwDQYJKoZIhvcNAQEMBQADggIB
|
||||
AGSPesRiDrWIzLjHhg6hShbNcAu3p4ULs3a2D6f/CIsLJc+o1IN1KriWiLb73y0t
|
||||
tGlTITVX1olNc79pj3CjYcya2x6a4CD4bLubIp1dhDGaLIrdaqHXKGnK/nZVekZn
|
||||
68xDiBaiA9a5F/gZbG0jAn/xX9AKKSM70aoK7akXJlQKTcKlTfjF/biBzysseKNn
|
||||
TKkHmvPfXvt89YnNdJdhEGoHK4Fa0o635yDRIG4kqIQnoVesqlVYL9zZyvpoBJ7t
|
||||
RCT5dEA7IzOrg1oYJkK2bVS1FmAwbLGg+LhBoF1JSdJlBTrq/p1hvIbZv97Tujqx
|
||||
f36SNI7JAG7cmL3c7IAFrQI932XtCwP39xaEBDG6k5TY8hL4iuO/Qq+n1M0RFxbI
|
||||
Qh0UqEL20kCGoE8jypZFVmAGzbdVAaYBlGX+bgUJurSkquLvWL69J1bY73NxW0Qz
|
||||
8ppy6rBePm6pUlvscG21h483XjyMnM7k8M4MZ0HMzvaAq07MTFb1wWFZk7Q+ptq4
|
||||
NxKfKjLji7gh7MMrZQzvIt6IKTtM1/r+t+FHvpw+PoP7UV31aPcuIYXcv/Fa4nzX
|
||||
xeSDwWrruoBa3lwtcHb4yOWHh8qgnaHlIhInD0Q9HWzq1MKLL295q39QpsQZp6F6
|
||||
t5b5wR9iWqJDB0BeJsas7a5wFsWqynKKTbDPAYsDP27X
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
# Issuer: CN=SecureSign Root CA12 O=Cybertrust Japan Co., Ltd.
|
||||
# Subject: CN=SecureSign Root CA12 O=Cybertrust Japan Co., Ltd.
|
||||
# Label: "SecureSign Root CA12"
|
||||
# Serial: 587887345431707215246142177076162061960426065942
|
||||
# MD5 Fingerprint: c6:89:ca:64:42:9b:62:08:49:0b:1e:7f:e9:07:3d:e8
|
||||
# SHA1 Fingerprint: 7a:22:1e:3d:de:1b:06:ac:9e:c8:47:70:16:8e:3c:e5:f7:6b:06:f4
|
||||
# SHA256 Fingerprint: 3f:03:4b:b5:70:4d:44:b2:d0:85:45:a0:20:57:de:93:eb:f3:90:5f:ce:72:1a:cb:c7:30:c0:6d:da:ee:90:4e
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIDcjCCAlqgAwIBAgIUZvnHwa/swlG07VOX5uaCwysckBYwDQYJKoZIhvcNAQEL
|
||||
BQAwUTELMAkGA1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28u
|
||||
LCBMdGQuMR0wGwYDVQQDExRTZWN1cmVTaWduIFJvb3QgQ0ExMjAeFw0yMDA0MDgw
|
||||
NTM2NDZaFw00MDA0MDgwNTM2NDZaMFExCzAJBgNVBAYTAkpQMSMwIQYDVQQKExpD
|
||||
eWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2VjdXJlU2lnbiBS
|
||||
b290IENBMTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC6OcE3emhF
|
||||
KxS06+QT61d1I02PJC0W6K6OyX2kVzsqdiUzg2zqMoqUm048luT9Ub+ZyZN+v/mt
|
||||
p7JIKwccJ/VMvHASd6SFVLX9kHrko+RRWAPNEHl57muTH2SOa2SroxPjcf59q5zd
|
||||
J1M3s6oYwlkm7Fsf0uZlfO+TvdhYXAvA42VvPMfKWeP+bl+sg779XSVOKik71gur
|
||||
FzJ4pOE+lEa+Ym6b3kaosRbnhW70CEBFEaCeVESE99g2zvVQR9wsMJvuwPWW0v4J
|
||||
hscGWa5Pro4RmHvzC1KqYiaqId+OJTN5lxZJjfU+1UefNzFJM3IFTQy2VYzxV4+K
|
||||
h9GtxRESOaCtAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD
|
||||
AgEGMB0GA1UdDgQWBBRXNPN0zwRL1SXm8UC2LEzZLemgrTANBgkqhkiG9w0BAQsF
|
||||
AAOCAQEAPrvbFxbS8hQBICw4g0utvsqFepq2m2um4fylOqyttCg6r9cBg0krY6Ld
|
||||
mmQOmFxv3Y67ilQiLUoT865AQ9tPkbeGGuwAtEGBpE/6aouIs3YIcipJQMPTw4WJ
|
||||
mBClnW8Zt7vPemVV2zfrPIpyMpcemik+rY3moxtt9XUa5rBouVui7mlHJzWhhpmA
|
||||
8zNL4WukJsPvdFlseqJkth5Ew1DgDzk9qTPxpfPSvWKErI4cqc1avTc7bgoitPQV
|
||||
55FYxTpE05Uo2cBl6XLK0A+9H7MV2anjpEcJnuDLN/v9vZfVvhgaaaI5gdka9at/
|
||||
yOPiZwud9AzqVN/Ssq+xIvEg37xEHA==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
# Issuer: CN=SecureSign Root CA14 O=Cybertrust Japan Co., Ltd.
|
||||
# Subject: CN=SecureSign Root CA14 O=Cybertrust Japan Co., Ltd.
|
||||
# Label: "SecureSign Root CA14"
|
||||
# Serial: 575790784512929437950770173562378038616896959179
|
||||
# MD5 Fingerprint: 71:0d:72:fa:92:19:65:5e:89:04:ac:16:33:f0:bc:d5
|
||||
# SHA1 Fingerprint: dd:50:c0:f7:79:b3:64:2e:74:a2:b8:9d:9f:d3:40:dd:bb:f0:f2:4f
|
||||
# SHA256 Fingerprint: 4b:00:9c:10:34:49:4f:9a:b5:6b:ba:3b:a1:d6:27:31:fc:4d:20:d8:95:5a:dc:ec:10:a9:25:60:72:61:e3:38
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFcjCCA1qgAwIBAgIUZNtaDCBO6Ncpd8hQJ6JaJ90t8sswDQYJKoZIhvcNAQEM
|
||||
BQAwUTELMAkGA1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28u
|
||||
LCBMdGQuMR0wGwYDVQQDExRTZWN1cmVTaWduIFJvb3QgQ0ExNDAeFw0yMDA0MDgw
|
||||
NzA2MTlaFw00NTA0MDgwNzA2MTlaMFExCzAJBgNVBAYTAkpQMSMwIQYDVQQKExpD
|
||||
eWJlcnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2VjdXJlU2lnbiBS
|
||||
b290IENBMTQwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDF0nqh1oq/
|
||||
FjHQmNE6lPxauG4iwWL3pwon71D2LrGeaBLwbCRjOfHw3xDG3rdSINVSW0KZnvOg
|
||||
vlIfX8xnbacuUKLBl422+JX1sLrcneC+y9/3OPJH9aaakpUqYllQC6KxNedlsmGy
|
||||
6pJxaeQp8E+BgQQ8sqVb1MWoWWd7VRxJq3qdwudzTe/NCcLEVxLbAQ4jeQkHO6Lo
|
||||
/IrPj8BGJJw4J+CDnRugv3gVEOuGTgpa/d/aLIJ+7sr2KeH6caH3iGicnPCNvg9J
|
||||
kdjqOvn90Ghx2+m1K06Ckm9mH+Dw3EzsytHqunQG+bOEkJTRX45zGRBdAuVwpcAQ
|
||||
0BB8b8VYSbSwbprafZX1zNoCr7gsfXmPvkPx+SgojQlD+Ajda8iLLCSxjVIHvXib
|
||||
y8posqTdDEx5YMaZ0ZPxMBoH064iwurO8YQJzOAUbn8/ftKChazcqRZOhaBgy/ac
|
||||
18izju3Gm5h1DVXoX+WViwKkrkMpKBGk5hIwAUt1ax5mnXkvpXYvHUC0bcl9eQjs
|
||||
0Wq2XSqypWa9a4X0dFbD9ed1Uigspf9mR6XU/v6eVL9lfgHWMI+lNpyiUBzuOIAB
|
||||
SMbHdPTGrMNASRZhdCyvjG817XsYAFs2PJxQDcqSMxDxJklt33UkN4Ii1+iW/RVL
|
||||
ApY+B3KVfqs9TC7XyvDf4Fg/LS8EmjijAQIDAQABo0IwQDAPBgNVHRMBAf8EBTAD
|
||||
AQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUBpOjCl4oaTeqYR3r6/wtbyPk
|
||||
86AwDQYJKoZIhvcNAQEMBQADggIBAJaAcgkGfpzMkwQWu6A6jZJOtxEaCnFxEM0E
|
||||
rX+lRVAQZk5KQaID2RFPeje5S+LGjzJmdSX7684/AykmjbgWHfYfM25I5uj4V7Ib
|
||||
ed87hwriZLoAymzvftAj63iP/2SbNDefNWWipAA9EiOWWF3KY4fGoweITedpdopT
|
||||
zfFP7ELyk+OZpDc8h7hi2/DsHzc/N19DzFGdtfCXwreFamgLRB7lUe6TzktuhsHS
|
||||
DCRZNhqfLJGP4xjblJUK7ZGqDpncllPjYYPGFrojutzdfhrGe0K22VoF3Jpf1d+4
|
||||
2kd92jjbrDnVHmtsKheMYc2xbXIBw8MgAGJoFjHVdqqGuw6qnsb58Nn4DSEC5MUo
|
||||
FlkRudlpcyqSeLiSV5sI8jrlL5WwWLdrIBRtFO8KvH7YVdiI2i/6GaX7i+B/OfVy
|
||||
K4XELKzvGUWSTLNhB9xNH27SgRNcmvMSZ4PPmz+Ln52kuaiWA3rF7iDeM9ovnhp6
|
||||
dB7h7sxaOgTdsxoEqBRjrLdHEoOabPXm6RUVkRqEGQ6UROcSjiVbgGcZ3GOTEAtl
|
||||
Lor6CZpO2oYofaphNdgOpygau1LgePhsumywbrmHXumZNTfxPWQrqaA0k89jL9WB
|
||||
365jJ6UeTo3cKXhZ+PmhIIynJkBugnLNeLLIjzwec+fBH7/PzqUqm9tEZDKgu39c
|
||||
JRNItX+S
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
# Issuer: CN=SecureSign Root CA15 O=Cybertrust Japan Co., Ltd.
|
||||
# Subject: CN=SecureSign Root CA15 O=Cybertrust Japan Co., Ltd.
|
||||
# Label: "SecureSign Root CA15"
|
||||
# Serial: 126083514594751269499665114766174399806381178503
|
||||
# MD5 Fingerprint: 13:30:fc:c4:62:a6:a9:de:b5:c1:68:af:b5:d2:31:47
|
||||
# SHA1 Fingerprint: cb:ba:83:c8:c1:5a:5d:f1:f9:73:6f:ca:d7:ef:28:13:06:4a:07:7d
|
||||
# SHA256 Fingerprint: e7:78:f0:f0:95:fe:84:37:29:cd:1a:00:82:17:9e:53:14:a9:c2:91:44:28:05:e1:fb:1d:8f:b6:b8:88:6c:3a
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIICIzCCAamgAwIBAgIUFhXHw9hJp75pDIqI7fBw+d23PocwCgYIKoZIzj0EAwMw
|
||||
UTELMAkGA1UEBhMCSlAxIzAhBgNVBAoTGkN5YmVydHJ1c3QgSmFwYW4gQ28uLCBM
|
||||
dGQuMR0wGwYDVQQDExRTZWN1cmVTaWduIFJvb3QgQ0ExNTAeFw0yMDA0MDgwODMy
|
||||
NTZaFw00NTA0MDgwODMyNTZaMFExCzAJBgNVBAYTAkpQMSMwIQYDVQQKExpDeWJl
|
||||
cnRydXN0IEphcGFuIENvLiwgTHRkLjEdMBsGA1UEAxMUU2VjdXJlU2lnbiBSb290
|
||||
IENBMTUwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQLUHSNZDKZmbPSYAi4Io5GdCx4
|
||||
wCtELW1fHcmuS1Iggz24FG1Th2CeX2yF2wYUleDHKP+dX+Sq8bOLbe1PL0vJSpSR
|
||||
ZHX+AezB2Ot6lHhWGENfa4HL9rzatAy2KZMIaY+jQjBAMA8GA1UdEwEB/wQFMAMB
|
||||
Af8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBTrQciu/NWeUUj1vYv0hyCTQSvT
|
||||
9DAKBggqhkjOPQQDAwNoADBlAjEA2S6Jfl5OpBEHvVnCB96rMjhTKkZEBhd6zlHp
|
||||
4P9mLQlO4E/0BdGF9jVg3PVys0Z9AjBEmEYagoUeYWmJSwdLZrWeqrqgHkHZAXQ6
|
||||
bkU6iYAZezKYVWOr62Nuk22rGwlgMU4=
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
# Issuer: CN=D-TRUST BR Root CA 2 2023 O=D-Trust GmbH
|
||||
# Subject: CN=D-TRUST BR Root CA 2 2023 O=D-Trust GmbH
|
||||
# Label: "D-TRUST BR Root CA 2 2023"
|
||||
# Serial: 153168538924886464690566649552453098598
|
||||
# MD5 Fingerprint: e1:09:ed:d3:60:d4:56:1b:47:1f:b7:0c:5f:1b:5f:85
|
||||
# SHA1 Fingerprint: 2d:b0:70:ee:71:94:af:69:68:17:db:79:ce:58:9f:a0:6b:96:f7:87
|
||||
# SHA256 Fingerprint: 05:52:e6:f8:3f:df:65:e8:fa:96:70:e6:66:df:28:a4:e2:13:40:b5:10:cb:e5:25:66:f9:7c:4f:b9:4b:2b:d1
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFqTCCA5GgAwIBAgIQczswBEhb2U14LnNLyaHcZjANBgkqhkiG9w0BAQ0FADBI
|
||||
MQswCQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlE
|
||||
LVRSVVNUIEJSIFJvb3QgQ0EgMiAyMDIzMB4XDTIzMDUwOTA4NTYzMVoXDTM4MDUw
|
||||
OTA4NTYzMFowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEi
|
||||
MCAGA1UEAxMZRC1UUlVTVCBCUiBSb290IENBIDIgMjAyMzCCAiIwDQYJKoZIhvcN
|
||||
AQEBBQADggIPADCCAgoCggIBAK7/CVmRgApKaOYkP7in5Mg6CjoWzckjYaCTcfKr
|
||||
i3OPoGdlYNJUa2NRb0kz4HIHE304zQaSBylSa053bATTlfrdTIzZXcFhfUvnKLNE
|
||||
gXtRr90zsWh81k5M/itoucpmacTsXld/9w3HnDY25QdgrMBM6ghs7wZ8T1soegj8
|
||||
k12b9py0i4a6Ibn08OhZWiihNIQaJZG2tY/vsvmA+vk9PBFy2OMvhnbFeSzBqZCT
|
||||
Rphny4NqoFAjpzv2gTng7fC5v2Xx2Mt6++9zA84A9H3X4F07ZrjcjrqDy4d2A/wl
|
||||
2ecjbwb9Z/Pg/4S8R7+1FhhGaRTMBffb00msa8yr5LULQyReS2tNZ9/WtT5PeB+U
|
||||
cSTq3nD88ZP+npNa5JRal1QMNXtfbO4AHyTsA7oC9Xb0n9Sa7YUsOCIvx9gvdhFP
|
||||
/Wxc6PWOJ4d/GUohR5AdeY0cW/jPSoXk7bNbjb7EZChdQcRurDhaTyN0dKkSw/bS
|
||||
uREVMweR2Ds3OmMwBtHFIjYoYiMQ4EbMl6zWK11kJNXuHA7e+whadSr2Y23OC0K+
|
||||
0bpwHJwh5Q8xaRfX/Aq03u2AnMuStIv13lmiWAmlY0cL4UEyNEHZmrHZqLAbWt4N
|
||||
DfTisl01gLmB1IRpkQLLddCNxbU9CZEJjxShFHR5PtbJFR2kWVki3PaKRT08EtY+
|
||||
XTIvAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUZ5Dw1t61
|
||||
GNVGKX5cq/ieCLxklRAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRCMEAwPqA8oDqG
|
||||
OGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfYnJfcm9vdF9jYV8y
|
||||
XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQA097N3U9swFrktpSHxQCF16+tI
|
||||
FoE9c+CeJyrrd6kTpGoKWloUMz1oH4Guaf2Mn2VsNELZLdB/eBaxOqwjMa1ef67n
|
||||
riv6uvw8l5VAk1/DLQOj7aRvU9f6QA4w9QAgLABMjDu0ox+2v5Eyq6+SmNMW5tTR
|
||||
VFxDWy6u71cqqLRvpO8NVhTaIasgdp4D/Ca4nj8+AybmTNudX0KEPUUDAxxZiMrc
|
||||
LmEkWqTqJwtzEr5SswrPMhfiHocaFpVIbVrg0M8JkiZmkdijYQ6qgYF/6FKC0ULn
|
||||
4B0Y+qSFNueG4A3rvNTJ1jxD8V1Jbn6Bm2m1iWKPiFLY1/4nwSPFyysCu7Ff/vtD
|
||||
hQNGvl3GyiEm/9cCnnRK3PgTFbGBVzbLZVzRHTF36SXDw7IyN9XxmAnkbWOACKsG
|
||||
koHU6XCPpz+y7YaMgmo1yEJagtFSGkUPFaUA8JR7ZSdXOUPPfH/mvTWze/EZTN46
|
||||
ls/pdu4D58JDUjxqgejBWoC9EV2Ta/vH5mQ/u2kc6d0li690yVRAysuTEwrt+2aS
|
||||
Ecr1wPrYg1UDfNPFIkZ1cGt5SAYqgpq/5usWDiJFAbzdNpQ0qTUmiteXue4Icr80
|
||||
knCDgKs4qllo3UCkGJCy89UDyibK79XH4I9TjvAA46jtn/mtd+ArY0+ew+43u3gJ
|
||||
hJ65bvspmZDogNOfJA==
|
||||
-----END CERTIFICATE-----
|
||||
|
||||
# Issuer: CN=D-TRUST EV Root CA 2 2023 O=D-Trust GmbH
|
||||
# Subject: CN=D-TRUST EV Root CA 2 2023 O=D-Trust GmbH
|
||||
# Label: "D-TRUST EV Root CA 2 2023"
|
||||
# Serial: 139766439402180512324132425437959641711
|
||||
# MD5 Fingerprint: 96:b4:78:09:f0:09:cb:77:eb:bb:1b:4d:6f:36:bc:b6
|
||||
# SHA1 Fingerprint: a5:5b:d8:47:6c:8f:19:f7:4c:f4:6d:6b:b6:c2:79:82:22:df:54:8b
|
||||
# SHA256 Fingerprint: 8e:82:21:b2:e7:d4:00:78:36:a1:67:2f:0d:cc:29:9c:33:bc:07:d3:16:f1:32:fa:1a:20:6d:58:71:50:f1:ce
|
||||
-----BEGIN CERTIFICATE-----
|
||||
MIIFqTCCA5GgAwIBAgIQaSYJfoBLTKCnjHhiU19abzANBgkqhkiG9w0BAQ0FADBI
|
||||
MQswCQYDVQQGEwJERTEVMBMGA1UEChMMRC1UcnVzdCBHbWJIMSIwIAYDVQQDExlE
|
||||
LVRSVVNUIEVWIFJvb3QgQ0EgMiAyMDIzMB4XDTIzMDUwOTA5MTAzM1oXDTM4MDUw
|
||||
OTA5MTAzMlowSDELMAkGA1UEBhMCREUxFTATBgNVBAoTDEQtVHJ1c3QgR21iSDEi
|
||||
MCAGA1UEAxMZRC1UUlVTVCBFViBSb290IENBIDIgMjAyMzCCAiIwDQYJKoZIhvcN
|
||||
AQEBBQADggIPADCCAgoCggIBANiOo4mAC7JXUtypU0w3uX9jFxPvp1sjW2l1sJkK
|
||||
F8GLxNuo4MwxusLyzV3pt/gdr2rElYfXR8mV2IIEUD2BCP/kPbOx1sWy/YgJ25yE
|
||||
7CUXFId/MHibaljJtnMoPDT3mfd/06b4HEV8rSyMlD/YZxBTfiLNTiVR8CUkNRFe
|
||||
EMbsh2aJgWi6zCudR3Mfvc2RpHJqnKIbGKBv7FD0fUDCqDDPvXPIEysQEx6Lmqg6
|
||||
lHPTGGkKSv/BAQP/eX+1SH977ugpbzZMlWGG2Pmic4ruri+W7mjNPU0oQvlFKzIb
|
||||
RlUWaqZLKfm7lVa/Rh3sHZMdwGWyH6FDrlaeoLGPaxK3YG14C8qKXO0elg6DpkiV
|
||||
jTujIcSuWMYAsoS0I6SWhjW42J7YrDRJmGOVxcttSEfi8i4YHtAxq9107PncjLgc
|
||||
jmgjutDzUNzPZY9zOjLHfP7KgiJPvo5iR2blzYfi6NUPGJ/lBHJLRjwQ8kTCZFZx
|
||||
TnXonMkmdMV9WdEKWw9t/p51HBjGGjp82A0EzM23RWV6sY+4roRIPrN6TagD4uJ+
|
||||
ARZZaBhDM7DS3LAaQzXupdqpRlyuhoFBAUp0JuyfBr/CBTdkdXgpaP3F9ev+R/nk
|
||||
hbDhezGdpn9yo7nELC7MmVcOIQxFAZRl62UJxmMiCzNJkkg8/M3OsD6Onov4/knF
|
||||
NXJHAgMBAAGjgY4wgYswDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUqvyREBuH
|
||||
kV8Wub9PS5FeAByxMoAwDgYDVR0PAQH/BAQDAgEGMEkGA1UdHwRCMEAwPqA8oDqG
|
||||
OGh0dHA6Ly9jcmwuZC10cnVzdC5uZXQvY3JsL2QtdHJ1c3RfZXZfcm9vdF9jYV8y
|
||||
XzIwMjMuY3JsMA0GCSqGSIb3DQEBDQUAA4ICAQCTy6UfmRHsmg1fLBWTxj++EI14
|
||||
QvBukEdHjqOSMo1wj/Zbjb6JzkcBahsgIIlbyIIQbODnmaprxiqgYzWRaoUlrRc4
|
||||
pZt+UPJ26oUFKidBK7GB0aL2QHWpDsvxVUjY7NHss+jOFKE17MJeNRqrphYBBo7q
|
||||
3C+jisosketSjl8MmxfPy3MHGcRqwnNU73xDUmPBEcrCRbH0O1P1aa4846XerOhU
|
||||
t7KR/aypH/KH5BfGSah82ApB9PI+53c0BFLd6IHyTS9URZ0V4U/M5d40VxDJI3IX
|
||||
cI1QcB9WbMy5/zpaT2N6w25lBx2Eof+pDGOJbbJAiDnXH3dotfyc1dZnaVuodNv8
|
||||
ifYbMvekJKZ2t0dT741Jj6m2g1qllpBFYfXeA08mD6iL8AOWsKwV0HFaanuU5nCT
|
||||
2vFp4LJiTZ6P/4mdm13NRemUAiKN4DV/6PEEeXFsVIP4M7kFMhtYVRFP0OUnR3Hs
|
||||
7dpn1mKmS00PaaLJvOwiS5THaJQXfuKOKD62xur1NGyfN4gHONuGcfrNlUhDbqNP
|
||||
gofXNJhuS5N5YHVpD/Aa1VP6IQzCP+k/HxiMkl14p3ZnGbuy6n/pcAlWVqOwDAst
|
||||
Nl7F6cTVg8uGF5csbBNvh1qvSaYd2804BC5f4ko1Di1L+KIkBI3Y4WNeApI02phh
|
||||
XBxvWHZks/wCuPWdCg==
|
||||
-----END CERTIFICATE-----
|
||||
|
|
|
|||
1490
dist/ba_data/python-site-packages/typing_extensions.py
vendored
1490
dist/ba_data/python-site-packages/typing_extensions.py
vendored
File diff suppressed because it is too large
Load diff
|
|
@ -12,7 +12,7 @@ _TYPE_BODY = typing.Union[bytes, typing.IO[typing.Any], typing.Iterable[bytes],
|
|||
class ProxyConfig(typing.NamedTuple):
|
||||
ssl_context: ssl.SSLContext | None
|
||||
use_forwarding_for_https: bool
|
||||
assert_hostname: None | str | Literal[False]
|
||||
assert_hostname: None | str | typing.Literal[False]
|
||||
assert_fingerprint: str | None
|
||||
|
||||
|
||||
|
|
@ -28,7 +28,7 @@ class _ResponseOptions(typing.NamedTuple):
|
|||
|
||||
if typing.TYPE_CHECKING:
|
||||
import ssl
|
||||
from typing import Literal, Protocol
|
||||
from typing import Protocol
|
||||
|
||||
from .response import BaseHTTPResponse
|
||||
|
||||
|
|
@ -62,8 +62,7 @@ if typing.TYPE_CHECKING:
|
|||
socket_options: _TYPE_SOCKET_OPTIONS | None = ...,
|
||||
proxy: Url | None = None,
|
||||
proxy_config: ProxyConfig | None = None,
|
||||
) -> None:
|
||||
...
|
||||
) -> None: ...
|
||||
|
||||
def set_tunnel(
|
||||
self,
|
||||
|
|
@ -71,11 +70,9 @@ if typing.TYPE_CHECKING:
|
|||
port: int | None = None,
|
||||
headers: typing.Mapping[str, str] | None = None,
|
||||
scheme: str = "http",
|
||||
) -> None:
|
||||
...
|
||||
) -> None: ...
|
||||
|
||||
def connect(self) -> None:
|
||||
...
|
||||
def connect(self) -> None: ...
|
||||
|
||||
def request(
|
||||
self,
|
||||
|
|
@ -91,14 +88,11 @@ if typing.TYPE_CHECKING:
|
|||
preload_content: bool = True,
|
||||
decode_content: bool = True,
|
||||
enforce_content_length: bool = True,
|
||||
) -> None:
|
||||
...
|
||||
) -> None: ...
|
||||
|
||||
def getresponse(self) -> BaseHTTPResponse:
|
||||
...
|
||||
def getresponse(self) -> BaseHTTPResponse: ...
|
||||
|
||||
def close(self) -> None:
|
||||
...
|
||||
def close(self) -> None: ...
|
||||
|
||||
@property
|
||||
def is_closed(self) -> bool:
|
||||
|
|
@ -124,7 +118,7 @@ if typing.TYPE_CHECKING:
|
|||
|
||||
# Certificate verification methods
|
||||
cert_reqs: int | str | None
|
||||
assert_hostname: None | str | Literal[False]
|
||||
assert_hostname: None | str | typing.Literal[False]
|
||||
assert_fingerprint: str | None
|
||||
ssl_context: ssl.SSLContext | None
|
||||
|
||||
|
|
@ -155,7 +149,7 @@ if typing.TYPE_CHECKING:
|
|||
proxy: Url | None = None,
|
||||
proxy_config: ProxyConfig | None = None,
|
||||
cert_reqs: int | str | None = None,
|
||||
assert_hostname: None | str | Literal[False] = None,
|
||||
assert_hostname: None | str | typing.Literal[False] = None,
|
||||
assert_fingerprint: str | None = None,
|
||||
server_hostname: str | None = None,
|
||||
ssl_context: ssl.SSLContext | None = None,
|
||||
|
|
@ -168,5 +162,4 @@ if typing.TYPE_CHECKING:
|
|||
cert_file: str | None = None,
|
||||
key_file: str | None = None,
|
||||
key_password: str | None = None,
|
||||
) -> None:
|
||||
...
|
||||
) -> None: ...
|
||||
|
|
|
|||
|
|
@ -13,11 +13,9 @@ if typing.TYPE_CHECKING:
|
|||
from typing_extensions import Self
|
||||
|
||||
class HasGettableStringKeys(Protocol):
|
||||
def keys(self) -> typing.Iterator[str]:
|
||||
...
|
||||
def keys(self) -> typing.Iterator[str]: ...
|
||||
|
||||
def __getitem__(self, key: str) -> str:
|
||||
...
|
||||
def __getitem__(self, key: str) -> str: ...
|
||||
|
||||
|
||||
__all__ = ["RecentlyUsedContainer", "HTTPHeaderDict"]
|
||||
|
|
@ -33,7 +31,7 @@ _DT = typing.TypeVar("_DT")
|
|||
ValidHTTPHeaderSource = typing.Union[
|
||||
"HTTPHeaderDict",
|
||||
typing.Mapping[str, str],
|
||||
typing.Iterable[typing.Tuple[str, str]],
|
||||
typing.Iterable[tuple[str, str]],
|
||||
"HasGettableStringKeys",
|
||||
]
|
||||
|
||||
|
|
@ -55,7 +53,7 @@ def ensure_can_construct_http_header_dict(
|
|||
# Similarly to Mapping, full runtime checking of the contents of an Iterable is
|
||||
# expensive, so for the purposes of typechecking, we assume that any Iterable
|
||||
# is the right shape.
|
||||
return typing.cast(typing.Iterable[typing.Tuple[str, str]], potential)
|
||||
return typing.cast(typing.Iterable[tuple[str, str]], potential)
|
||||
elif hasattr(potential, "keys") and hasattr(potential, "__getitem__"):
|
||||
return typing.cast("HasGettableStringKeys", potential)
|
||||
else:
|
||||
|
|
@ -155,7 +153,7 @@ class RecentlyUsedContainer(typing.Generic[_KT, _VT], typing.MutableMapping[_KT,
|
|||
return set(self._container.keys())
|
||||
|
||||
|
||||
class HTTPHeaderDictItemView(typing.Set[typing.Tuple[str, str]]):
|
||||
class HTTPHeaderDictItemView(set[tuple[str, str]]):
|
||||
"""
|
||||
HTTPHeaderDict is unusual for a Mapping[str, str] in that it has two modes of
|
||||
address.
|
||||
|
|
@ -352,7 +350,7 @@ class HTTPHeaderDict(typing.MutableMapping[str, str]):
|
|||
for key, val in other.items():
|
||||
self.add(key, val)
|
||||
elif isinstance(other, typing.Iterable):
|
||||
other = typing.cast(typing.Iterable[typing.Tuple[str, str]], other)
|
||||
other = typing.cast(typing.Iterable[tuple[str, str]], other)
|
||||
for key, value in other:
|
||||
self.add(key, value)
|
||||
elif hasattr(other, "keys") and hasattr(other, "__getitem__"):
|
||||
|
|
@ -368,12 +366,10 @@ class HTTPHeaderDict(typing.MutableMapping[str, str]):
|
|||
self.add(key, value)
|
||||
|
||||
@typing.overload
|
||||
def getlist(self, key: str) -> list[str]:
|
||||
...
|
||||
def getlist(self, key: str) -> list[str]: ...
|
||||
|
||||
@typing.overload
|
||||
def getlist(self, key: str, default: _DT) -> list[str] | _DT:
|
||||
...
|
||||
def getlist(self, key: str, default: _DT) -> list[str] | _DT: ...
|
||||
|
||||
def getlist(
|
||||
self, key: str, default: _Sentinel | _DT = _Sentinel.not_passed
|
||||
|
|
@ -427,7 +423,7 @@ class HTTPHeaderDict(typing.MutableMapping[str, str]):
|
|||
val = other.getlist(key)
|
||||
self._container[key.lower()] = [key, *val]
|
||||
|
||||
def copy(self) -> HTTPHeaderDict:
|
||||
def copy(self) -> Self:
|
||||
clone = type(self)()
|
||||
clone._copy_from(self)
|
||||
return clone
|
||||
|
|
@ -462,7 +458,7 @@ class HTTPHeaderDict(typing.MutableMapping[str, str]):
|
|||
self.extend(maybe_constructable)
|
||||
return self
|
||||
|
||||
def __or__(self, other: object) -> HTTPHeaderDict:
|
||||
def __or__(self, other: object) -> Self:
|
||||
# Supports merging header dicts using operator |
|
||||
# combining items with add instead of __setitem__
|
||||
maybe_constructable = ensure_can_construct_http_header_dict(other)
|
||||
|
|
@ -472,7 +468,7 @@ class HTTPHeaderDict(typing.MutableMapping[str, str]):
|
|||
result.extend(maybe_constructable)
|
||||
return result
|
||||
|
||||
def __ror__(self, other: object) -> HTTPHeaderDict:
|
||||
def __ror__(self, other: object) -> Self:
|
||||
# Supports merging header dicts using operator | when other is on left side
|
||||
# combining items with add instead of __setitem__
|
||||
maybe_constructable = ensure_can_construct_http_header_dict(other)
|
||||
|
|
|
|||
|
|
@ -12,7 +12,7 @@ from .response import BaseHTTPResponse
|
|||
__all__ = ["RequestMethods"]
|
||||
|
||||
_TYPE_ENCODE_URL_FIELDS = typing.Union[
|
||||
typing.Sequence[typing.Tuple[str, typing.Union[str, bytes]]],
|
||||
typing.Sequence[tuple[str, typing.Union[str, bytes]]],
|
||||
typing.Mapping[str, typing.Union[str, bytes]],
|
||||
]
|
||||
|
||||
|
|
@ -97,8 +97,7 @@ class RequestMethods:
|
|||
an iterable of :class:`str`/:class:`bytes`, or a file-like object.
|
||||
|
||||
:param fields:
|
||||
Data to encode and send in the request body. Values are processed
|
||||
by :func:`urllib.parse.urlencode`.
|
||||
Data to encode and send in the URL or request body, depending on ``method``.
|
||||
|
||||
:param headers:
|
||||
Dictionary of custom headers to send, such as User-Agent,
|
||||
|
|
@ -164,7 +163,7 @@ class RequestMethods:
|
|||
The URL to perform the request on.
|
||||
|
||||
:param fields:
|
||||
Data to encode and send in the request body.
|
||||
Data to encode and send in the URL.
|
||||
|
||||
:param headers:
|
||||
Dictionary of custom headers to send, such as User-Agent,
|
||||
|
|
|
|||
|
|
@ -1,4 +1,16 @@
|
|||
# This file is protected via CODEOWNERS
|
||||
from __future__ import annotations
|
||||
# file generated by setuptools_scm
|
||||
# don't change, don't track in version control
|
||||
TYPE_CHECKING = False
|
||||
if TYPE_CHECKING:
|
||||
from typing import Tuple, Union
|
||||
VERSION_TUPLE = Tuple[Union[int, str], ...]
|
||||
else:
|
||||
VERSION_TUPLE = object
|
||||
|
||||
__version__ = "2.2.1"
|
||||
version: str
|
||||
__version__: str
|
||||
__version_tuple__: VERSION_TUPLE
|
||||
version_tuple: VERSION_TUPLE
|
||||
|
||||
__version__ = version = '2.3.0'
|
||||
__version_tuple__ = version_tuple = (2, 3, 0)
|
||||
|
|
|
|||
|
|
@ -1,11 +1,13 @@
|
|||
from __future__ import annotations
|
||||
|
||||
import datetime
|
||||
import http.client
|
||||
import logging
|
||||
import os
|
||||
import re
|
||||
import socket
|
||||
import sys
|
||||
import threading
|
||||
import typing
|
||||
import warnings
|
||||
from http.client import HTTPConnection as _HTTPConnection
|
||||
|
|
@ -14,13 +16,12 @@ from http.client import ResponseNotReady
|
|||
from socket import timeout as SocketTimeout
|
||||
|
||||
if typing.TYPE_CHECKING:
|
||||
from typing import Literal
|
||||
|
||||
from .response import HTTPResponse
|
||||
from .util.ssl_ import _TYPE_PEER_CERT_RET_DICT
|
||||
from .util.ssltransport import SSLTransport
|
||||
|
||||
from ._collections import HTTPHeaderDict
|
||||
from .http2 import probe as http2_probe
|
||||
from .util.response import assert_header_parsing
|
||||
from .util.timeout import _DEFAULT_TIMEOUT, _TYPE_TIMEOUT, Timeout
|
||||
from .util.util import to_str
|
||||
|
|
@ -77,8 +78,6 @@ RECENT_DATE = datetime.date(2023, 6, 1)
|
|||
|
||||
_CONTAINS_CONTROL_CHAR_RE = re.compile(r"[^-!#$%&'*+.^_`|~0-9a-zA-Z]")
|
||||
|
||||
_HAS_SYS_AUDIT = hasattr(sys, "audit")
|
||||
|
||||
|
||||
class HTTPConnection(_HTTPConnection):
|
||||
"""
|
||||
|
|
@ -138,8 +137,9 @@ class HTTPConnection(_HTTPConnection):
|
|||
timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
|
||||
source_address: tuple[str, int] | None = None,
|
||||
blocksize: int = 16384,
|
||||
socket_options: None
|
||||
| (connection._TYPE_SOCKET_OPTIONS) = default_socket_options,
|
||||
socket_options: None | (
|
||||
connection._TYPE_SOCKET_OPTIONS
|
||||
) = default_socket_options,
|
||||
proxy: Url | None = None,
|
||||
proxy_config: ProxyConfig | None = None,
|
||||
) -> None:
|
||||
|
|
@ -214,9 +214,7 @@ class HTTPConnection(_HTTPConnection):
|
|||
self, f"Failed to establish a new connection: {e}"
|
||||
) from e
|
||||
|
||||
# Audit hooks are only available in Python 3.8+
|
||||
if _HAS_SYS_AUDIT:
|
||||
sys.audit("http.client.connect", self, self.host, self.port)
|
||||
sys.audit("http.client.connect", self, self.host, self.port)
|
||||
|
||||
return sock
|
||||
|
||||
|
|
@ -234,6 +232,46 @@ class HTTPConnection(_HTTPConnection):
|
|||
super().set_tunnel(host, port=port, headers=headers)
|
||||
self._tunnel_scheme = scheme
|
||||
|
||||
if sys.version_info < (3, 11, 4):
|
||||
|
||||
def _tunnel(self) -> None:
|
||||
_MAXLINE = http.client._MAXLINE # type: ignore[attr-defined]
|
||||
connect = b"CONNECT %s:%d HTTP/1.0\r\n" % ( # type: ignore[str-format]
|
||||
self._tunnel_host.encode("ascii"), # type: ignore[union-attr]
|
||||
self._tunnel_port,
|
||||
)
|
||||
headers = [connect]
|
||||
for header, value in self._tunnel_headers.items(): # type: ignore[attr-defined]
|
||||
headers.append(f"{header}: {value}\r\n".encode("latin-1"))
|
||||
headers.append(b"\r\n")
|
||||
# Making a single send() call instead of one per line encourages
|
||||
# the host OS to use a more optimal packet size instead of
|
||||
# potentially emitting a series of small packets.
|
||||
self.send(b"".join(headers))
|
||||
del headers
|
||||
|
||||
response = self.response_class(self.sock, method=self._method) # type: ignore[attr-defined]
|
||||
try:
|
||||
(version, code, message) = response._read_status() # type: ignore[attr-defined]
|
||||
|
||||
if code != http.HTTPStatus.OK:
|
||||
self.close()
|
||||
raise OSError(f"Tunnel connection failed: {code} {message.strip()}")
|
||||
while True:
|
||||
line = response.fp.readline(_MAXLINE + 1)
|
||||
if len(line) > _MAXLINE:
|
||||
raise http.client.LineTooLong("header line")
|
||||
if not line:
|
||||
# for sites which EOF without sending a trailer
|
||||
break
|
||||
if line in (b"\r\n", b"\n", b""):
|
||||
break
|
||||
|
||||
if self.debuglevel > 0:
|
||||
print("header:", line.decode())
|
||||
finally:
|
||||
response.close()
|
||||
|
||||
def connect(self) -> None:
|
||||
self.sock = self._new_conn()
|
||||
if self._tunnel_host:
|
||||
|
|
@ -241,7 +279,7 @@ class HTTPConnection(_HTTPConnection):
|
|||
self._has_connected_to_proxy = True
|
||||
|
||||
# TODO: Fix tunnel so it doesn't depend on self.sock state.
|
||||
self._tunnel() # type: ignore[attr-defined]
|
||||
self._tunnel()
|
||||
|
||||
# If there's a proxy to be connected to we are fully connected.
|
||||
# This is set twice (once above and here) due to forwarding proxies
|
||||
|
|
@ -272,6 +310,13 @@ class HTTPConnection(_HTTPConnection):
|
|||
"""
|
||||
return bool(self.proxy) and self._tunnel_host is None
|
||||
|
||||
@property
|
||||
def proxy_is_tunneling(self) -> bool:
|
||||
"""
|
||||
Return True if a tunneling proxy is configured, else return False
|
||||
"""
|
||||
return self._tunnel_host is not None
|
||||
|
||||
def close(self) -> None:
|
||||
try:
|
||||
super().close()
|
||||
|
|
@ -462,6 +507,11 @@ class HTTPConnection(_HTTPConnection):
|
|||
# This is needed here to avoid circular import errors
|
||||
from .response import HTTPResponse
|
||||
|
||||
# Save a reference to the shutdown function before ownership is passed
|
||||
# to httplib_response
|
||||
# TODO should we implement it everywhere?
|
||||
_shutdown = getattr(self.sock, "shutdown", None)
|
||||
|
||||
# Get the response from http.client.HTTPConnection
|
||||
httplib_response = super().getresponse()
|
||||
|
||||
|
|
@ -482,6 +532,7 @@ class HTTPConnection(_HTTPConnection):
|
|||
headers=headers,
|
||||
status=httplib_response.status,
|
||||
version=httplib_response.version,
|
||||
version_string=getattr(self, "_http_vsn_str", "HTTP/?"),
|
||||
reason=httplib_response.reason,
|
||||
preload_content=resp_options.preload_content,
|
||||
decode_content=resp_options.decode_content,
|
||||
|
|
@ -489,6 +540,7 @@ class HTTPConnection(_HTTPConnection):
|
|||
enforce_content_length=resp_options.enforce_content_length,
|
||||
request_method=resp_options.request_method,
|
||||
request_url=resp_options.request_url,
|
||||
sock_shutdown=_shutdown,
|
||||
)
|
||||
return response
|
||||
|
||||
|
|
@ -509,6 +561,7 @@ class HTTPSConnection(HTTPConnection):
|
|||
ssl_minimum_version: int | None = None
|
||||
ssl_maximum_version: int | None = None
|
||||
assert_fingerprint: str | None = None
|
||||
_connect_callback: typing.Callable[..., None] | None = None
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
|
|
@ -518,12 +571,13 @@ class HTTPSConnection(HTTPConnection):
|
|||
timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
|
||||
source_address: tuple[str, int] | None = None,
|
||||
blocksize: int = 16384,
|
||||
socket_options: None
|
||||
| (connection._TYPE_SOCKET_OPTIONS) = HTTPConnection.default_socket_options,
|
||||
socket_options: None | (
|
||||
connection._TYPE_SOCKET_OPTIONS
|
||||
) = HTTPConnection.default_socket_options,
|
||||
proxy: Url | None = None,
|
||||
proxy_config: ProxyConfig | None = None,
|
||||
cert_reqs: int | str | None = None,
|
||||
assert_hostname: None | str | Literal[False] = None,
|
||||
assert_hostname: None | str | typing.Literal[False] = None,
|
||||
assert_fingerprint: str | None = None,
|
||||
server_hostname: str | None = None,
|
||||
ssl_context: ssl.SSLContext | None = None,
|
||||
|
|
@ -569,6 +623,7 @@ class HTTPSConnection(HTTPConnection):
|
|||
else:
|
||||
cert_reqs = resolve_cert_reqs(None)
|
||||
self.cert_reqs = cert_reqs
|
||||
self._connect_callback = None
|
||||
|
||||
def set_cert(
|
||||
self,
|
||||
|
|
@ -577,7 +632,7 @@ class HTTPSConnection(HTTPConnection):
|
|||
cert_reqs: int | str | None = None,
|
||||
key_password: str | None = None,
|
||||
ca_certs: str | None = None,
|
||||
assert_hostname: None | str | Literal[False] = None,
|
||||
assert_hostname: None | str | typing.Literal[False] = None,
|
||||
assert_fingerprint: str | None = None,
|
||||
ca_cert_dir: str | None = None,
|
||||
ca_cert_data: None | str | bytes = None,
|
||||
|
|
@ -612,63 +667,122 @@ class HTTPSConnection(HTTPConnection):
|
|||
self.ca_cert_data = ca_cert_data
|
||||
|
||||
def connect(self) -> None:
|
||||
sock: socket.socket | ssl.SSLSocket
|
||||
self.sock = sock = self._new_conn()
|
||||
server_hostname: str = self.host
|
||||
tls_in_tls = False
|
||||
# Today we don't need to be doing this step before the /actual/ socket
|
||||
# connection, however in the future we'll need to decide whether to
|
||||
# create a new socket or re-use an existing "shared" socket as a part
|
||||
# of the HTTP/2 handshake dance.
|
||||
if self._tunnel_host is not None and self._tunnel_port is not None:
|
||||
probe_http2_host = self._tunnel_host
|
||||
probe_http2_port = self._tunnel_port
|
||||
else:
|
||||
probe_http2_host = self.host
|
||||
probe_http2_port = self.port
|
||||
|
||||
# Do we need to establish a tunnel?
|
||||
if self._tunnel_host is not None:
|
||||
# We're tunneling to an HTTPS origin so need to do TLS-in-TLS.
|
||||
if self._tunnel_scheme == "https":
|
||||
# _connect_tls_proxy will verify and assign proxy_is_verified
|
||||
self.sock = sock = self._connect_tls_proxy(self.host, sock)
|
||||
tls_in_tls = True
|
||||
elif self._tunnel_scheme == "http":
|
||||
self.proxy_is_verified = False
|
||||
# Check if the target origin supports HTTP/2.
|
||||
# If the value comes back as 'None' it means that the current thread
|
||||
# is probing for HTTP/2 support. Otherwise, we're waiting for another
|
||||
# probe to complete, or we get a value right away.
|
||||
target_supports_http2: bool | None
|
||||
if "h2" in ssl_.ALPN_PROTOCOLS:
|
||||
target_supports_http2 = http2_probe.acquire_and_get(
|
||||
host=probe_http2_host, port=probe_http2_port
|
||||
)
|
||||
else:
|
||||
# If HTTP/2 isn't going to be offered it doesn't matter if
|
||||
# the target supports HTTP/2. Don't want to make a probe.
|
||||
target_supports_http2 = False
|
||||
|
||||
# If we're tunneling it means we're connected to our proxy.
|
||||
self._has_connected_to_proxy = True
|
||||
|
||||
self._tunnel() # type: ignore[attr-defined]
|
||||
# Override the host with the one we're requesting data from.
|
||||
server_hostname = self._tunnel_host
|
||||
|
||||
if self.server_hostname is not None:
|
||||
server_hostname = self.server_hostname
|
||||
|
||||
is_time_off = datetime.date.today() < RECENT_DATE
|
||||
if is_time_off:
|
||||
warnings.warn(
|
||||
(
|
||||
f"System time is way off (before {RECENT_DATE}). This will probably "
|
||||
"lead to SSL verification errors"
|
||||
),
|
||||
SystemTimeWarning,
|
||||
if self._connect_callback is not None:
|
||||
self._connect_callback(
|
||||
"before connect",
|
||||
thread_id=threading.get_ident(),
|
||||
target_supports_http2=target_supports_http2,
|
||||
)
|
||||
|
||||
# Remove trailing '.' from fqdn hostnames to allow certificate validation
|
||||
server_hostname_rm_dot = server_hostname.rstrip(".")
|
||||
try:
|
||||
sock: socket.socket | ssl.SSLSocket
|
||||
self.sock = sock = self._new_conn()
|
||||
server_hostname: str = self.host
|
||||
tls_in_tls = False
|
||||
|
||||
sock_and_verified = _ssl_wrap_socket_and_match_hostname(
|
||||
sock=sock,
|
||||
cert_reqs=self.cert_reqs,
|
||||
ssl_version=self.ssl_version,
|
||||
ssl_minimum_version=self.ssl_minimum_version,
|
||||
ssl_maximum_version=self.ssl_maximum_version,
|
||||
ca_certs=self.ca_certs,
|
||||
ca_cert_dir=self.ca_cert_dir,
|
||||
ca_cert_data=self.ca_cert_data,
|
||||
cert_file=self.cert_file,
|
||||
key_file=self.key_file,
|
||||
key_password=self.key_password,
|
||||
server_hostname=server_hostname_rm_dot,
|
||||
ssl_context=self.ssl_context,
|
||||
tls_in_tls=tls_in_tls,
|
||||
assert_hostname=self.assert_hostname,
|
||||
assert_fingerprint=self.assert_fingerprint,
|
||||
)
|
||||
self.sock = sock_and_verified.socket
|
||||
# Do we need to establish a tunnel?
|
||||
if self.proxy_is_tunneling:
|
||||
# We're tunneling to an HTTPS origin so need to do TLS-in-TLS.
|
||||
if self._tunnel_scheme == "https":
|
||||
# _connect_tls_proxy will verify and assign proxy_is_verified
|
||||
self.sock = sock = self._connect_tls_proxy(self.host, sock)
|
||||
tls_in_tls = True
|
||||
elif self._tunnel_scheme == "http":
|
||||
self.proxy_is_verified = False
|
||||
|
||||
# If we're tunneling it means we're connected to our proxy.
|
||||
self._has_connected_to_proxy = True
|
||||
|
||||
self._tunnel()
|
||||
# Override the host with the one we're requesting data from.
|
||||
server_hostname = typing.cast(str, self._tunnel_host)
|
||||
|
||||
if self.server_hostname is not None:
|
||||
server_hostname = self.server_hostname
|
||||
|
||||
is_time_off = datetime.date.today() < RECENT_DATE
|
||||
if is_time_off:
|
||||
warnings.warn(
|
||||
(
|
||||
f"System time is way off (before {RECENT_DATE}). This will probably "
|
||||
"lead to SSL verification errors"
|
||||
),
|
||||
SystemTimeWarning,
|
||||
)
|
||||
|
||||
# Remove trailing '.' from fqdn hostnames to allow certificate validation
|
||||
server_hostname_rm_dot = server_hostname.rstrip(".")
|
||||
|
||||
sock_and_verified = _ssl_wrap_socket_and_match_hostname(
|
||||
sock=sock,
|
||||
cert_reqs=self.cert_reqs,
|
||||
ssl_version=self.ssl_version,
|
||||
ssl_minimum_version=self.ssl_minimum_version,
|
||||
ssl_maximum_version=self.ssl_maximum_version,
|
||||
ca_certs=self.ca_certs,
|
||||
ca_cert_dir=self.ca_cert_dir,
|
||||
ca_cert_data=self.ca_cert_data,
|
||||
cert_file=self.cert_file,
|
||||
key_file=self.key_file,
|
||||
key_password=self.key_password,
|
||||
server_hostname=server_hostname_rm_dot,
|
||||
ssl_context=self.ssl_context,
|
||||
tls_in_tls=tls_in_tls,
|
||||
assert_hostname=self.assert_hostname,
|
||||
assert_fingerprint=self.assert_fingerprint,
|
||||
)
|
||||
self.sock = sock_and_verified.socket
|
||||
|
||||
# If an error occurs during connection/handshake we may need to release
|
||||
# our lock so another connection can probe the origin.
|
||||
except BaseException:
|
||||
if self._connect_callback is not None:
|
||||
self._connect_callback(
|
||||
"after connect failure",
|
||||
thread_id=threading.get_ident(),
|
||||
target_supports_http2=target_supports_http2,
|
||||
)
|
||||
|
||||
if target_supports_http2 is None:
|
||||
http2_probe.set_and_release(
|
||||
host=probe_http2_host, port=probe_http2_port, supports_http2=None
|
||||
)
|
||||
raise
|
||||
|
||||
# If this connection doesn't know if the origin supports HTTP/2
|
||||
# we report back to the HTTP/2 probe our result.
|
||||
if target_supports_http2 is None:
|
||||
supports_http2 = sock_and_verified.socket.selected_alpn_protocol() == "h2"
|
||||
http2_probe.set_and_release(
|
||||
host=probe_http2_host,
|
||||
port=probe_http2_port,
|
||||
supports_http2=supports_http2,
|
||||
)
|
||||
|
||||
# Forwarding proxies can never have a verified target since
|
||||
# the proxy is the one doing the verification. Should instead
|
||||
|
|
@ -742,7 +856,7 @@ def _ssl_wrap_socket_and_match_hostname(
|
|||
ca_certs: str | None,
|
||||
ca_cert_dir: str | None,
|
||||
ca_cert_data: None | str | bytes,
|
||||
assert_hostname: None | str | Literal[False],
|
||||
assert_hostname: None | str | typing.Literal[False],
|
||||
assert_fingerprint: str | None,
|
||||
server_hostname: str | None,
|
||||
ssl_context: ssl.SSLContext | None,
|
||||
|
|
|
|||
|
|
@ -53,7 +53,8 @@ from .util.util import to_str
|
|||
|
||||
if typing.TYPE_CHECKING:
|
||||
import ssl
|
||||
from typing import Literal
|
||||
|
||||
from typing_extensions import Self
|
||||
|
||||
from ._base_connection import BaseHTTPConnection, BaseHTTPSConnection
|
||||
|
||||
|
|
@ -61,8 +62,6 @@ log = logging.getLogger(__name__)
|
|||
|
||||
_TYPE_TIMEOUT = typing.Union[Timeout, float, _TYPE_DEFAULT, None]
|
||||
|
||||
_SelfT = typing.TypeVar("_SelfT")
|
||||
|
||||
|
||||
# Pool objects
|
||||
class ConnectionPool:
|
||||
|
|
@ -95,7 +94,7 @@ class ConnectionPool:
|
|||
def __str__(self) -> str:
|
||||
return f"{type(self).__name__}(host={self.host!r}, port={self.port!r})"
|
||||
|
||||
def __enter__(self: _SelfT) -> _SelfT:
|
||||
def __enter__(self) -> Self:
|
||||
return self
|
||||
|
||||
def __exit__(
|
||||
|
|
@ -103,7 +102,7 @@ class ConnectionPool:
|
|||
exc_type: type[BaseException] | None,
|
||||
exc_val: BaseException | None,
|
||||
exc_tb: TracebackType | None,
|
||||
) -> Literal[False]:
|
||||
) -> typing.Literal[False]:
|
||||
self.close()
|
||||
# Return False to re-raise any potential exceptions
|
||||
return False
|
||||
|
|
@ -171,9 +170,7 @@ class HTTPConnectionPool(ConnectionPool, RequestMethods):
|
|||
"""
|
||||
|
||||
scheme = "http"
|
||||
ConnectionCls: (
|
||||
type[BaseHTTPConnection] | type[BaseHTTPSConnection]
|
||||
) = HTTPConnection
|
||||
ConnectionCls: type[BaseHTTPConnection] | type[BaseHTTPSConnection] = HTTPConnection
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
|
|
@ -544,8 +541,6 @@ class HTTPConnectionPool(ConnectionPool, RequestMethods):
|
|||
response._connection = response_conn # type: ignore[attr-defined]
|
||||
response._pool = self # type: ignore[attr-defined]
|
||||
|
||||
# emscripten connection doesn't have _http_vsn_str
|
||||
http_version = getattr(conn, "_http_vsn_str", "HTTP/?")
|
||||
log.debug(
|
||||
'%s://%s:%s "%s %s %s" %s %s',
|
||||
self.scheme,
|
||||
|
|
@ -553,8 +548,7 @@ class HTTPConnectionPool(ConnectionPool, RequestMethods):
|
|||
self.port,
|
||||
method,
|
||||
url,
|
||||
# HTTP version
|
||||
http_version,
|
||||
response.version_string,
|
||||
response.status,
|
||||
response.length_remaining,
|
||||
)
|
||||
|
|
@ -1002,7 +996,7 @@ class HTTPSConnectionPool(HTTPConnectionPool):
|
|||
ssl_version: int | str | None = None,
|
||||
ssl_minimum_version: ssl.TLSVersion | None = None,
|
||||
ssl_maximum_version: ssl.TLSVersion | None = None,
|
||||
assert_hostname: str | Literal[False] | None = None,
|
||||
assert_hostname: str | typing.Literal[False] | None = None,
|
||||
assert_fingerprint: str | None = None,
|
||||
ca_cert_dir: str | None = None,
|
||||
**conn_kw: typing.Any,
|
||||
|
|
@ -1141,13 +1135,11 @@ def connection_from_url(url: str, **kw: typing.Any) -> HTTPConnectionPool:
|
|||
|
||||
|
||||
@typing.overload
|
||||
def _normalize_host(host: None, scheme: str | None) -> None:
|
||||
...
|
||||
def _normalize_host(host: None, scheme: str | None) -> None: ...
|
||||
|
||||
|
||||
@typing.overload
|
||||
def _normalize_host(host: str, scheme: str | None) -> str:
|
||||
...
|
||||
def _normalize_host(host: str, scheme: str | None) -> str: ...
|
||||
|
||||
|
||||
def _normalize_host(host: str | None, scheme: str | None) -> str | None:
|
||||
|
|
|
|||
|
|
@ -0,0 +1 @@
|
|||
|
||||
|
|
@ -182,8 +182,9 @@ class EmscriptenHTTPSConnection(EmscriptenHTTPConnection):
|
|||
timeout: _TYPE_TIMEOUT = _DEFAULT_TIMEOUT,
|
||||
source_address: tuple[str, int] | None = None,
|
||||
blocksize: int = 16384,
|
||||
socket_options: None
|
||||
| _TYPE_SOCKET_OPTIONS = HTTPConnection.default_socket_options,
|
||||
socket_options: (
|
||||
None | _TYPE_SOCKET_OPTIONS
|
||||
) = HTTPConnection.default_socket_options,
|
||||
proxy: Url | None = None,
|
||||
proxy_config: ProxyConfig | None = None,
|
||||
cert_reqs: int | str | None = None,
|
||||
|
|
|
|||
|
|
@ -3,6 +3,16 @@ Support for streaming http requests in emscripten.
|
|||
|
||||
A few caveats -
|
||||
|
||||
If your browser (or Node.js) has WebAssembly JavaScript Promise Integration enabled
|
||||
https://github.com/WebAssembly/js-promise-integration/blob/main/proposals/js-promise-integration/Overview.md
|
||||
*and* you launch pyodide using `pyodide.runPythonAsync`, this will fetch data using the
|
||||
JavaScript asynchronous fetch api (wrapped via `pyodide.ffi.call_sync`). In this case
|
||||
timeouts and streaming should just work.
|
||||
|
||||
Otherwise, it uses a combination of XMLHttpRequest and a web-worker for streaming.
|
||||
|
||||
This approach has several caveats:
|
||||
|
||||
Firstly, you can't do streaming http in the main UI thread, because atomics.wait isn't allowed.
|
||||
Streaming only works if you're running pyodide in a web worker.
|
||||
|
||||
|
|
@ -14,15 +24,16 @@ operation, so it requires that you have crossOriginIsolation enabled, by serving
|
|||
Cross-Origin-Embedder-Policy: require-corp
|
||||
|
||||
You can tell if cross origin isolation is successfully enabled by looking at the global crossOriginIsolated variable in
|
||||
javascript console. If it isn't, streaming requests will fallback to XMLHttpRequest, i.e. getting the whole
|
||||
request into a buffer and then returning it. it shows a warning in the javascript console in this case.
|
||||
JavaScript console. If it isn't, streaming requests will fallback to XMLHttpRequest, i.e. getting the whole
|
||||
request into a buffer and then returning it. it shows a warning in the JavaScript console in this case.
|
||||
|
||||
Finally, the webworker which does the streaming fetch is created on initial import, but will only be started once
|
||||
control is returned to javascript. Call `await wait_for_streaming_ready()` to wait for streaming fetch.
|
||||
|
||||
NB: in this code, there are a lot of javascript objects. They are named js_*
|
||||
NB: in this code, there are a lot of JavaScript objects. They are named js_*
|
||||
to make it clear what type of object they are.
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import io
|
||||
|
|
@ -123,17 +134,18 @@ class _ReadStream(io.RawIOBase):
|
|||
return self.is_closed()
|
||||
|
||||
def close(self) -> None:
|
||||
if not self.is_closed():
|
||||
self.read_len = 0
|
||||
self.read_pos = 0
|
||||
self.int_buffer = None
|
||||
self.byte_buffer = None
|
||||
self._is_closed = True
|
||||
self.request = None
|
||||
if self.is_live:
|
||||
self.worker.postMessage(_obj_from_dict({"close": self.connection_id}))
|
||||
self.is_live = False
|
||||
super().close()
|
||||
if self.is_closed():
|
||||
return
|
||||
self.read_len = 0
|
||||
self.read_pos = 0
|
||||
self.int_buffer = None
|
||||
self.byte_buffer = None
|
||||
self._is_closed = True
|
||||
self.request = None
|
||||
if self.is_live:
|
||||
self.worker.postMessage(_obj_from_dict({"close": self.connection_id}))
|
||||
self.is_live = False
|
||||
super().close()
|
||||
|
||||
def readable(self) -> bool:
|
||||
return True
|
||||
|
|
@ -197,7 +209,8 @@ class _StreamingFetcher:
|
|||
self.streaming_ready = False
|
||||
|
||||
js_data_blob = js.Blob.new(
|
||||
[_STREAMING_WORKER_CODE], _obj_from_dict({"type": "application/javascript"})
|
||||
to_js([_STREAMING_WORKER_CODE], create_pyproxies=False),
|
||||
_obj_from_dict({"type": "application/javascript"}),
|
||||
)
|
||||
|
||||
def promise_resolver(js_resolve_fn: JsProxy, js_reject_fn: JsProxy) -> None:
|
||||
|
|
@ -288,6 +301,113 @@ class _StreamingFetcher:
|
|||
)
|
||||
|
||||
|
||||
class _JSPIReadStream(io.RawIOBase):
|
||||
"""
|
||||
A read stream that uses pyodide.ffi.run_sync to read from a JavaScript fetch
|
||||
response. This requires support for WebAssembly JavaScript Promise Integration
|
||||
in the containing browser, and for pyodide to be launched via runPythonAsync.
|
||||
|
||||
:param js_read_stream:
|
||||
The JavaScript stream reader
|
||||
|
||||
:param timeout:
|
||||
Timeout in seconds
|
||||
|
||||
:param request:
|
||||
The request we're handling
|
||||
|
||||
:param response:
|
||||
The response this stream relates to
|
||||
|
||||
:param js_abort_controller:
|
||||
A JavaScript AbortController object, used for timeouts
|
||||
"""
|
||||
|
||||
def __init__(
|
||||
self,
|
||||
js_read_stream: Any,
|
||||
timeout: float,
|
||||
request: EmscriptenRequest,
|
||||
response: EmscriptenResponse,
|
||||
js_abort_controller: Any, # JavaScript AbortController for timeouts
|
||||
):
|
||||
self.js_read_stream = js_read_stream
|
||||
self.timeout = timeout
|
||||
self._is_closed = False
|
||||
self._is_done = False
|
||||
self.request: EmscriptenRequest | None = request
|
||||
self.response: EmscriptenResponse | None = response
|
||||
self.current_buffer = None
|
||||
self.current_buffer_pos = 0
|
||||
self.js_abort_controller = js_abort_controller
|
||||
|
||||
def __del__(self) -> None:
|
||||
self.close()
|
||||
|
||||
# this is compatible with _base_connection
|
||||
def is_closed(self) -> bool:
|
||||
return self._is_closed
|
||||
|
||||
# for compatibility with RawIOBase
|
||||
@property
|
||||
def closed(self) -> bool:
|
||||
return self.is_closed()
|
||||
|
||||
def close(self) -> None:
|
||||
if self.is_closed():
|
||||
return
|
||||
self.read_len = 0
|
||||
self.read_pos = 0
|
||||
self.js_read_stream.cancel()
|
||||
self.js_read_stream = None
|
||||
self._is_closed = True
|
||||
self._is_done = True
|
||||
self.request = None
|
||||
self.response = None
|
||||
super().close()
|
||||
|
||||
def readable(self) -> bool:
|
||||
return True
|
||||
|
||||
def writable(self) -> bool:
|
||||
return False
|
||||
|
||||
def seekable(self) -> bool:
|
||||
return False
|
||||
|
||||
def _get_next_buffer(self) -> bool:
|
||||
result_js = _run_sync_with_timeout(
|
||||
self.js_read_stream.read(),
|
||||
self.timeout,
|
||||
self.js_abort_controller,
|
||||
request=self.request,
|
||||
response=self.response,
|
||||
)
|
||||
if result_js.done:
|
||||
self._is_done = True
|
||||
return False
|
||||
else:
|
||||
self.current_buffer = result_js.value.to_py()
|
||||
self.current_buffer_pos = 0
|
||||
return True
|
||||
|
||||
def readinto(self, byte_obj: Buffer) -> int:
|
||||
if self.current_buffer is None:
|
||||
if not self._get_next_buffer() or self.current_buffer is None:
|
||||
self.close()
|
||||
return 0
|
||||
ret_length = min(
|
||||
len(byte_obj), len(self.current_buffer) - self.current_buffer_pos
|
||||
)
|
||||
byte_obj[0:ret_length] = self.current_buffer[
|
||||
self.current_buffer_pos : self.current_buffer_pos + ret_length
|
||||
]
|
||||
self.current_buffer_pos += ret_length
|
||||
if self.current_buffer_pos == len(self.current_buffer):
|
||||
self.current_buffer = None
|
||||
return ret_length
|
||||
|
||||
|
||||
# check if we are in a worker or not
|
||||
def is_in_browser_main_thread() -> bool:
|
||||
return hasattr(js, "window") and hasattr(js, "self") and js.self == js.window
|
||||
|
|
@ -321,7 +441,23 @@ else:
|
|||
_fetcher = None
|
||||
|
||||
|
||||
NODE_JSPI_ERROR = (
|
||||
"urllib3 only works in Node.js with pyodide.runPythonAsync"
|
||||
" and requires the flag --experimental-wasm-stack-switching in "
|
||||
" versions of node <24."
|
||||
)
|
||||
|
||||
|
||||
def send_streaming_request(request: EmscriptenRequest) -> EmscriptenResponse | None:
|
||||
if has_jspi():
|
||||
return send_jspi_request(request, True)
|
||||
elif is_in_node():
|
||||
raise _RequestError(
|
||||
message=NODE_JSPI_ERROR,
|
||||
request=request,
|
||||
response=None,
|
||||
)
|
||||
|
||||
if _fetcher and streaming_ready():
|
||||
return _fetcher.send(request)
|
||||
else:
|
||||
|
|
@ -363,6 +499,14 @@ is working, you need to call: 'await urllib3.contrib.emscripten.fetch.wait_for_s
|
|||
|
||||
|
||||
def send_request(request: EmscriptenRequest) -> EmscriptenResponse:
|
||||
if has_jspi():
|
||||
return send_jspi_request(request, False)
|
||||
elif is_in_node():
|
||||
raise _RequestError(
|
||||
message=NODE_JSPI_ERROR,
|
||||
request=request,
|
||||
response=None,
|
||||
)
|
||||
try:
|
||||
js_xhr = js.XMLHttpRequest.new()
|
||||
|
||||
|
|
@ -403,6 +547,152 @@ def send_request(request: EmscriptenRequest) -> EmscriptenResponse:
|
|||
raise _RequestError(err.message, request=request)
|
||||
|
||||
|
||||
def send_jspi_request(
|
||||
request: EmscriptenRequest, streaming: bool
|
||||
) -> EmscriptenResponse:
|
||||
"""
|
||||
Send a request using WebAssembly JavaScript Promise Integration
|
||||
to wrap the asynchronous JavaScript fetch api (experimental).
|
||||
|
||||
:param request:
|
||||
Request to send
|
||||
|
||||
:param streaming:
|
||||
Whether to stream the response
|
||||
|
||||
:return: The response object
|
||||
:rtype: EmscriptenResponse
|
||||
"""
|
||||
timeout = request.timeout
|
||||
js_abort_controller = js.AbortController.new()
|
||||
headers = {k: v for k, v in request.headers.items() if k not in HEADERS_TO_IGNORE}
|
||||
req_body = request.body
|
||||
fetch_data = {
|
||||
"headers": headers,
|
||||
"body": to_js(req_body),
|
||||
"method": request.method,
|
||||
"signal": js_abort_controller.signal,
|
||||
}
|
||||
# Call JavaScript fetch (async api, returns a promise)
|
||||
fetcher_promise_js = js.fetch(request.url, _obj_from_dict(fetch_data))
|
||||
# Now suspend WebAssembly until we resolve that promise
|
||||
# or time out.
|
||||
response_js = _run_sync_with_timeout(
|
||||
fetcher_promise_js,
|
||||
timeout,
|
||||
js_abort_controller,
|
||||
request=request,
|
||||
response=None,
|
||||
)
|
||||
headers = {}
|
||||
header_iter = response_js.headers.entries()
|
||||
while True:
|
||||
iter_value_js = header_iter.next()
|
||||
if getattr(iter_value_js, "done", False):
|
||||
break
|
||||
else:
|
||||
headers[str(iter_value_js.value[0])] = str(iter_value_js.value[1])
|
||||
status_code = response_js.status
|
||||
body: bytes | io.RawIOBase = b""
|
||||
|
||||
response = EmscriptenResponse(
|
||||
status_code=status_code, headers=headers, body=b"", request=request
|
||||
)
|
||||
if streaming:
|
||||
# get via inputstream
|
||||
if response_js.body is not None:
|
||||
# get a reader from the fetch response
|
||||
body_stream_js = response_js.body.getReader()
|
||||
body = _JSPIReadStream(
|
||||
body_stream_js, timeout, request, response, js_abort_controller
|
||||
)
|
||||
else:
|
||||
# get directly via arraybuffer
|
||||
# n.b. this is another async JavaScript call.
|
||||
body = _run_sync_with_timeout(
|
||||
response_js.arrayBuffer(),
|
||||
timeout,
|
||||
js_abort_controller,
|
||||
request=request,
|
||||
response=response,
|
||||
).to_py()
|
||||
response.body = body
|
||||
return response
|
||||
|
||||
|
||||
def _run_sync_with_timeout(
|
||||
promise: Any,
|
||||
timeout: float,
|
||||
js_abort_controller: Any,
|
||||
request: EmscriptenRequest | None,
|
||||
response: EmscriptenResponse | None,
|
||||
) -> Any:
|
||||
"""
|
||||
Await a JavaScript promise synchronously with a timeout which is implemented
|
||||
via the AbortController
|
||||
|
||||
:param promise:
|
||||
Javascript promise to await
|
||||
|
||||
:param timeout:
|
||||
Timeout in seconds
|
||||
|
||||
:param js_abort_controller:
|
||||
A JavaScript AbortController object, used on timeout
|
||||
|
||||
:param request:
|
||||
The request being handled
|
||||
|
||||
:param response:
|
||||
The response being handled (if it exists yet)
|
||||
|
||||
:raises _TimeoutError: If the request times out
|
||||
:raises _RequestError: If the request raises a JavaScript exception
|
||||
|
||||
:return: The result of awaiting the promise.
|
||||
"""
|
||||
timer_id = None
|
||||
if timeout > 0:
|
||||
timer_id = js.setTimeout(
|
||||
js_abort_controller.abort.bind(js_abort_controller), int(timeout * 1000)
|
||||
)
|
||||
try:
|
||||
from pyodide.ffi import run_sync
|
||||
|
||||
# run_sync here uses WebAssembly JavaScript Promise Integration to
|
||||
# suspend python until the JavaScript promise resolves.
|
||||
return run_sync(promise)
|
||||
except JsException as err:
|
||||
if err.name == "AbortError":
|
||||
raise _TimeoutError(
|
||||
message="Request timed out", request=request, response=response
|
||||
)
|
||||
else:
|
||||
raise _RequestError(message=err.message, request=request, response=response)
|
||||
finally:
|
||||
if timer_id is not None:
|
||||
js.clearTimeout(timer_id)
|
||||
|
||||
|
||||
def has_jspi() -> bool:
|
||||
"""
|
||||
Return true if jspi can be used.
|
||||
|
||||
This requires both browser support and also WebAssembly
|
||||
to be in the correct state - i.e. that the javascript
|
||||
call into python was async not sync.
|
||||
|
||||
:return: True if jspi can be used.
|
||||
:rtype: bool
|
||||
"""
|
||||
try:
|
||||
from pyodide.ffi import can_run_sync, run_sync # noqa: F401
|
||||
|
||||
return bool(can_run_sync())
|
||||
except ImportError:
|
||||
return False
|
||||
|
||||
|
||||
def streaming_ready() -> bool | None:
|
||||
if _fetcher:
|
||||
return _fetcher.streaming_ready
|
||||
|
|
|
|||
|
|
@ -45,6 +45,7 @@ class EmscriptenHttpResponseWrapper(BaseHTTPResponse):
|
|||
status=internal_response.status_code,
|
||||
request_url=url,
|
||||
version=0,
|
||||
version_string="HTTP/?",
|
||||
reason="",
|
||||
decode_content=True,
|
||||
)
|
||||
|
|
@ -74,7 +75,7 @@ class EmscriptenHttpResponseWrapper(BaseHTTPResponse):
|
|||
|
||||
def stream(
|
||||
self, amt: int | None = 2**16, decode_content: bool | None = None
|
||||
) -> typing.Generator[bytes, None, None]:
|
||||
) -> typing.Generator[bytes]:
|
||||
"""
|
||||
A generator wrapper for the read() method. A call will block until
|
||||
``amt`` bytes have been read from the connection or until the
|
||||
|
|
@ -155,7 +156,7 @@ class EmscriptenHttpResponseWrapper(BaseHTTPResponse):
|
|||
self.length_is_certain = True
|
||||
# wrap body in IOStream
|
||||
self._response.body = BytesIO(self._response.body)
|
||||
if amt is not None:
|
||||
if amt is not None and amt >= 0:
|
||||
# don't cache partial content
|
||||
cache_content = False
|
||||
data = self._response.body.read(amt)
|
||||
|
|
@ -184,7 +185,7 @@ class EmscriptenHttpResponseWrapper(BaseHTTPResponse):
|
|||
self,
|
||||
amt: int | None = None,
|
||||
decode_content: bool | None = None,
|
||||
) -> typing.Generator[bytes, None, None]:
|
||||
) -> typing.Generator[bytes]:
|
||||
# chunked is handled by browser
|
||||
while True:
|
||||
bytes = self.read(amt, decode_content)
|
||||
|
|
@ -211,13 +212,21 @@ class EmscriptenHttpResponseWrapper(BaseHTTPResponse):
|
|||
|
||||
def json(self) -> typing.Any:
|
||||
"""
|
||||
Parses the body of the HTTP response as JSON.
|
||||
Deserializes the body of the HTTP response as a Python object.
|
||||
|
||||
To use a custom JSON decoder pass the result of :attr:`HTTPResponse.data` to the decoder.
|
||||
The body of the HTTP response must be encoded using UTF-8, as per
|
||||
`RFC 8529 Section 8.1 <https://www.rfc-editor.org/rfc/rfc8259#section-8.1>`_.
|
||||
|
||||
This method can raise either `UnicodeDecodeError` or `json.JSONDecodeError`.
|
||||
To use a custom JSON decoder pass the result of :attr:`HTTPResponse.data` to
|
||||
your custom decoder instead.
|
||||
|
||||
Read more :ref:`here <json>`.
|
||||
If the body of the HTTP response is not decodable to UTF-8, a
|
||||
`UnicodeDecodeError` will be raised. If the body of the HTTP response is not a
|
||||
valid JSON document, a `json.JSONDecodeError` will be raised.
|
||||
|
||||
Read more :ref:`here <json_content>`.
|
||||
|
||||
:returns: The body of the HTTP response as a Python object.
|
||||
"""
|
||||
data = self.data.decode("utf-8")
|
||||
return _json.loads(data)
|
||||
|
|
@ -232,7 +241,7 @@ class EmscriptenHttpResponseWrapper(BaseHTTPResponse):
|
|||
self._closed = True
|
||||
|
||||
@contextmanager
|
||||
def _error_catcher(self) -> typing.Generator[None, None, None]:
|
||||
def _error_catcher(self) -> typing.Generator[None]:
|
||||
"""
|
||||
Catch Emscripten specific exceptions thrown by fetch.py,
|
||||
instead re-raising urllib3 variants, so that low-level exceptions
|
||||
|
|
|
|||
|
|
@ -366,9 +366,11 @@ class WrappedSocket:
|
|||
)
|
||||
total_sent += sent
|
||||
|
||||
def shutdown(self) -> None:
|
||||
# FIXME rethrow compatible exceptions should we ever use this
|
||||
self.connection.shutdown()
|
||||
def shutdown(self, how: int) -> None:
|
||||
try:
|
||||
self.connection.shutdown()
|
||||
except OpenSSL.SSL.Error as e:
|
||||
raise ssl.SSLError(f"shutdown error: {e!r}") from e
|
||||
|
||||
def close(self) -> None:
|
||||
self._closed = True
|
||||
|
|
@ -400,6 +402,10 @@ class WrappedSocket:
|
|||
def version(self) -> str:
|
||||
return self.connection.get_protocol_version_name() # type: ignore[no-any-return]
|
||||
|
||||
def selected_alpn_protocol(self) -> str | None:
|
||||
alpn_proto = self.connection.get_alpn_proto_negotiated()
|
||||
return alpn_proto.decode() if alpn_proto else None
|
||||
|
||||
|
||||
WrappedSocket.makefile = socket_cls.makefile # type: ignore[attr-defined]
|
||||
|
||||
|
|
|
|||
|
|
@ -71,10 +71,8 @@ try:
|
|||
except ImportError:
|
||||
ssl = None # type: ignore[assignment]
|
||||
|
||||
from typing import TypedDict
|
||||
|
||||
|
||||
class _TYPE_SOCKS_OPTIONS(TypedDict):
|
||||
class _TYPE_SOCKS_OPTIONS(typing.TypedDict):
|
||||
socks_version: int
|
||||
proxy_host: str | None
|
||||
proxy_port: str | None
|
||||
|
|
|
|||
|
|
@ -23,9 +23,7 @@ class HTTPWarning(Warning):
|
|||
"""Base warning used by this module."""
|
||||
|
||||
|
||||
_TYPE_REDUCE_RESULT = typing.Tuple[
|
||||
typing.Callable[..., object], typing.Tuple[object, ...]
|
||||
]
|
||||
_TYPE_REDUCE_RESULT = tuple[typing.Callable[..., object], tuple[object, ...]]
|
||||
|
||||
|
||||
class PoolError(HTTPError):
|
||||
|
|
@ -143,6 +141,10 @@ class NewConnectionError(ConnectTimeoutError, HTTPError):
|
|||
self.conn = conn
|
||||
super().__init__(f"{conn}: {message}")
|
||||
|
||||
def __reduce__(self) -> _TYPE_REDUCE_RESULT:
|
||||
# For pickling purposes.
|
||||
return self.__class__, (None, None)
|
||||
|
||||
@property
|
||||
def pool(self) -> HTTPConnection:
|
||||
warnings.warn(
|
||||
|
|
@ -162,6 +164,10 @@ class NameResolutionError(NewConnectionError):
|
|||
message = f"Failed to resolve '{host}' ({reason})"
|
||||
super().__init__(conn, message)
|
||||
|
||||
def __reduce__(self) -> _TYPE_REDUCE_RESULT:
|
||||
# For pickling purposes.
|
||||
return self.__class__, (None, None, None)
|
||||
|
||||
|
||||
class EmptyPoolError(PoolError):
|
||||
"""Raised when a pool runs out of connections and no more are allowed."""
|
||||
|
|
|
|||
|
|
@ -7,8 +7,8 @@ import typing
|
|||
_TYPE_FIELD_VALUE = typing.Union[str, bytes]
|
||||
_TYPE_FIELD_VALUE_TUPLE = typing.Union[
|
||||
_TYPE_FIELD_VALUE,
|
||||
typing.Tuple[str, _TYPE_FIELD_VALUE],
|
||||
typing.Tuple[str, _TYPE_FIELD_VALUE, str],
|
||||
tuple[str, _TYPE_FIELD_VALUE],
|
||||
tuple[str, _TYPE_FIELD_VALUE, str],
|
||||
]
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -11,7 +11,7 @@ from .fields import _TYPE_FIELD_VALUE_TUPLE, RequestField
|
|||
writer = codecs.lookup("utf-8")[3]
|
||||
|
||||
_TYPE_FIELDS_SEQUENCE = typing.Sequence[
|
||||
typing.Union[typing.Tuple[str, _TYPE_FIELD_VALUE_TUPLE], RequestField]
|
||||
typing.Union[tuple[str, _TYPE_FIELD_VALUE_TUPLE], RequestField]
|
||||
]
|
||||
_TYPE_FIELDS = typing.Union[
|
||||
_TYPE_FIELDS_SEQUENCE,
|
||||
|
|
|
|||
53
dist/ba_data/python-site-packages/urllib3/http2/__init__.py
vendored
Normal file
53
dist/ba_data/python-site-packages/urllib3/http2/__init__.py
vendored
Normal file
|
|
@ -0,0 +1,53 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from importlib.metadata import version
|
||||
|
||||
__all__ = [
|
||||
"inject_into_urllib3",
|
||||
"extract_from_urllib3",
|
||||
]
|
||||
|
||||
import typing
|
||||
|
||||
orig_HTTPSConnection: typing.Any = None
|
||||
|
||||
|
||||
def inject_into_urllib3() -> None:
|
||||
# First check if h2 version is valid
|
||||
h2_version = version("h2")
|
||||
if not h2_version.startswith("4."):
|
||||
raise ImportError(
|
||||
"urllib3 v2 supports h2 version 4.x.x, currently "
|
||||
f"the 'h2' module is compiled with {h2_version!r}. "
|
||||
"See: https://github.com/urllib3/urllib3/issues/3290"
|
||||
)
|
||||
|
||||
# Import here to avoid circular dependencies.
|
||||
from .. import connection as urllib3_connection
|
||||
from .. import util as urllib3_util
|
||||
from ..connectionpool import HTTPSConnectionPool
|
||||
from ..util import ssl_ as urllib3_util_ssl
|
||||
from .connection import HTTP2Connection
|
||||
|
||||
global orig_HTTPSConnection
|
||||
orig_HTTPSConnection = urllib3_connection.HTTPSConnection
|
||||
|
||||
HTTPSConnectionPool.ConnectionCls = HTTP2Connection
|
||||
urllib3_connection.HTTPSConnection = HTTP2Connection # type: ignore[misc]
|
||||
|
||||
# TODO: Offer 'http/1.1' as well, but for testing purposes this is handy.
|
||||
urllib3_util.ALPN_PROTOCOLS = ["h2"]
|
||||
urllib3_util_ssl.ALPN_PROTOCOLS = ["h2"]
|
||||
|
||||
|
||||
def extract_from_urllib3() -> None:
|
||||
from .. import connection as urllib3_connection
|
||||
from .. import util as urllib3_util
|
||||
from ..connectionpool import HTTPSConnectionPool
|
||||
from ..util import ssl_ as urllib3_util_ssl
|
||||
|
||||
HTTPSConnectionPool.ConnectionCls = orig_HTTPSConnection
|
||||
urllib3_connection.HTTPSConnection = orig_HTTPSConnection # type: ignore[misc]
|
||||
|
||||
urllib3_util.ALPN_PROTOCOLS = ["http/1.1"]
|
||||
urllib3_util_ssl.ALPN_PROTOCOLS = ["http/1.1"]
|
||||
356
dist/ba_data/python-site-packages/urllib3/http2/connection.py
vendored
Normal file
356
dist/ba_data/python-site-packages/urllib3/http2/connection.py
vendored
Normal file
|
|
@ -0,0 +1,356 @@
|
|||
from __future__ import annotations
|
||||
|
||||
import logging
|
||||
import re
|
||||
import threading
|
||||
import types
|
||||
import typing
|
||||
|
||||
import h2.config # type: ignore[import-untyped]
|
||||
import h2.connection # type: ignore[import-untyped]
|
||||
import h2.events # type: ignore[import-untyped]
|
||||
|
||||
from .._base_connection import _TYPE_BODY
|
||||
from .._collections import HTTPHeaderDict
|
||||
from ..connection import HTTPSConnection, _get_default_user_agent
|
||||
from ..exceptions import ConnectionError
|
||||
from ..response import BaseHTTPResponse
|
||||
|
||||
orig_HTTPSConnection = HTTPSConnection
|
||||
|
||||
T = typing.TypeVar("T")
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
||||
RE_IS_LEGAL_HEADER_NAME = re.compile(rb"^[!#$%&'*+\-.^_`|~0-9a-z]+$")
|
||||
RE_IS_ILLEGAL_HEADER_VALUE = re.compile(rb"[\0\x00\x0a\x0d\r\n]|^[ \r\n\t]|[ \r\n\t]$")
|
||||
|
||||
|
||||
def _is_legal_header_name(name: bytes) -> bool:
|
||||
"""
|
||||
"An implementation that validates fields according to the definitions in Sections
|
||||
5.1 and 5.5 of [HTTP] only needs an additional check that field names do not
|
||||
include uppercase characters." (https://httpwg.org/specs/rfc9113.html#n-field-validity)
|
||||
|
||||
`http.client._is_legal_header_name` does not validate the field name according to the
|
||||
HTTP 1.1 spec, so we do that here, in addition to checking for uppercase characters.
|
||||
|
||||
This does not allow for the `:` character in the header name, so should not
|
||||
be used to validate pseudo-headers.
|
||||
"""
|
||||
return bool(RE_IS_LEGAL_HEADER_NAME.match(name))
|
||||
|
||||
|
||||
def _is_illegal_header_value(value: bytes) -> bool:
|
||||
"""
|
||||
"A field value MUST NOT contain the zero value (ASCII NUL, 0x00), line feed
|
||||
(ASCII LF, 0x0a), or carriage return (ASCII CR, 0x0d) at any position. A field
|
||||
value MUST NOT start or end with an ASCII whitespace character (ASCII SP or HTAB,
|
||||
0x20 or 0x09)." (https://httpwg.org/specs/rfc9113.html#n-field-validity)
|
||||
"""
|
||||
return bool(RE_IS_ILLEGAL_HEADER_VALUE.search(value))
|
||||
|
||||
|
||||
class _LockedObject(typing.Generic[T]):
|
||||
"""
|
||||
A wrapper class that hides a specific object behind a lock.
|
||||
The goal here is to provide a simple way to protect access to an object
|
||||
that cannot safely be simultaneously accessed from multiple threads. The
|
||||
intended use of this class is simple: take hold of it with a context
|
||||
manager, which returns the protected object.
|
||||
"""
|
||||
|
||||
__slots__ = (
|
||||
"lock",
|
||||
"_obj",
|
||||
)
|
||||
|
||||
def __init__(self, obj: T):
|
||||
self.lock = threading.RLock()
|
||||
self._obj = obj
|
||||
|
||||
def __enter__(self) -> T:
|
||||
self.lock.acquire()
|
||||
return self._obj
|
||||
|
||||
def __exit__(
|
||||
self,
|
||||
exc_type: type[BaseException] | None,
|
||||
exc_val: BaseException | None,
|
||||
exc_tb: types.TracebackType | None,
|
||||
) -> None:
|
||||
self.lock.release()
|
||||
|
||||
|
||||
class HTTP2Connection(HTTPSConnection):
|
||||
def __init__(
|
||||
self, host: str, port: int | None = None, **kwargs: typing.Any
|
||||
) -> None:
|
||||
self._h2_conn = self._new_h2_conn()
|
||||
self._h2_stream: int | None = None
|
||||
self._headers: list[tuple[bytes, bytes]] = []
|
||||
|
||||
if "proxy" in kwargs or "proxy_config" in kwargs: # Defensive:
|
||||
raise NotImplementedError("Proxies aren't supported with HTTP/2")
|
||||
|
||||
super().__init__(host, port, **kwargs)
|
||||
|
||||
if self._tunnel_host is not None:
|
||||
raise NotImplementedError("Tunneling isn't supported with HTTP/2")
|
||||
|
||||
def _new_h2_conn(self) -> _LockedObject[h2.connection.H2Connection]:
|
||||
config = h2.config.H2Configuration(client_side=True)
|
||||
return _LockedObject(h2.connection.H2Connection(config=config))
|
||||
|
||||
def connect(self) -> None:
|
||||
super().connect()
|
||||
with self._h2_conn as conn:
|
||||
conn.initiate_connection()
|
||||
if data_to_send := conn.data_to_send():
|
||||
self.sock.sendall(data_to_send)
|
||||
|
||||
def putrequest( # type: ignore[override]
|
||||
self,
|
||||
method: str,
|
||||
url: str,
|
||||
**kwargs: typing.Any,
|
||||
) -> None:
|
||||
"""putrequest
|
||||
This deviates from the HTTPConnection method signature since we never need to override
|
||||
sending accept-encoding headers or the host header.
|
||||
"""
|
||||
if "skip_host" in kwargs:
|
||||
raise NotImplementedError("`skip_host` isn't supported")
|
||||
if "skip_accept_encoding" in kwargs:
|
||||
raise NotImplementedError("`skip_accept_encoding` isn't supported")
|
||||
|
||||
self._request_url = url or "/"
|
||||
self._validate_path(url) # type: ignore[attr-defined]
|
||||
|
||||
if ":" in self.host:
|
||||
authority = f"[{self.host}]:{self.port or 443}"
|
||||
else:
|
||||
authority = f"{self.host}:{self.port or 443}"
|
||||
|
||||
self._headers.append((b":scheme", b"https"))
|
||||
self._headers.append((b":method", method.encode()))
|
||||
self._headers.append((b":authority", authority.encode()))
|
||||
self._headers.append((b":path", url.encode()))
|
||||
|
||||
with self._h2_conn as conn:
|
||||
self._h2_stream = conn.get_next_available_stream_id()
|
||||
|
||||
def putheader(self, header: str | bytes, *values: str | bytes) -> None:
|
||||
# TODO SKIPPABLE_HEADERS from urllib3 are ignored.
|
||||
header = header.encode() if isinstance(header, str) else header
|
||||
header = header.lower() # A lot of upstream code uses capitalized headers.
|
||||
if not _is_legal_header_name(header):
|
||||
raise ValueError(f"Illegal header name {str(header)}")
|
||||
|
||||
for value in values:
|
||||
value = value.encode() if isinstance(value, str) else value
|
||||
if _is_illegal_header_value(value):
|
||||
raise ValueError(f"Illegal header value {str(value)}")
|
||||
self._headers.append((header, value))
|
||||
|
||||
def endheaders(self, message_body: typing.Any = None) -> None: # type: ignore[override]
|
||||
if self._h2_stream is None:
|
||||
raise ConnectionError("Must call `putrequest` first.")
|
||||
|
||||
with self._h2_conn as conn:
|
||||
conn.send_headers(
|
||||
stream_id=self._h2_stream,
|
||||
headers=self._headers,
|
||||
end_stream=(message_body is None),
|
||||
)
|
||||
if data_to_send := conn.data_to_send():
|
||||
self.sock.sendall(data_to_send)
|
||||
self._headers = [] # Reset headers for the next request.
|
||||
|
||||
def send(self, data: typing.Any) -> None:
|
||||
"""Send data to the server.
|
||||
`data` can be: `str`, `bytes`, an iterable, or file-like objects
|
||||
that support a .read() method.
|
||||
"""
|
||||
if self._h2_stream is None:
|
||||
raise ConnectionError("Must call `putrequest` first.")
|
||||
|
||||
with self._h2_conn as conn:
|
||||
if data_to_send := conn.data_to_send():
|
||||
self.sock.sendall(data_to_send)
|
||||
|
||||
if hasattr(data, "read"): # file-like objects
|
||||
while True:
|
||||
chunk = data.read(self.blocksize)
|
||||
if not chunk:
|
||||
break
|
||||
if isinstance(chunk, str):
|
||||
chunk = chunk.encode() # pragma: no cover
|
||||
conn.send_data(self._h2_stream, chunk, end_stream=False)
|
||||
if data_to_send := conn.data_to_send():
|
||||
self.sock.sendall(data_to_send)
|
||||
conn.end_stream(self._h2_stream)
|
||||
return
|
||||
|
||||
if isinstance(data, str): # str -> bytes
|
||||
data = data.encode()
|
||||
|
||||
try:
|
||||
if isinstance(data, bytes):
|
||||
conn.send_data(self._h2_stream, data, end_stream=True)
|
||||
if data_to_send := conn.data_to_send():
|
||||
self.sock.sendall(data_to_send)
|
||||
else:
|
||||
for chunk in data:
|
||||
conn.send_data(self._h2_stream, chunk, end_stream=False)
|
||||
if data_to_send := conn.data_to_send():
|
||||
self.sock.sendall(data_to_send)
|
||||
conn.end_stream(self._h2_stream)
|
||||
except TypeError:
|
||||
raise TypeError(
|
||||
"`data` should be str, bytes, iterable, or file. got %r"
|
||||
% type(data)
|
||||
)
|
||||
|
||||
def set_tunnel(
|
||||
self,
|
||||
host: str,
|
||||
port: int | None = None,
|
||||
headers: typing.Mapping[str, str] | None = None,
|
||||
scheme: str = "http",
|
||||
) -> None:
|
||||
raise NotImplementedError(
|
||||
"HTTP/2 does not support setting up a tunnel through a proxy"
|
||||
)
|
||||
|
||||
def getresponse( # type: ignore[override]
|
||||
self,
|
||||
) -> HTTP2Response:
|
||||
status = None
|
||||
data = bytearray()
|
||||
with self._h2_conn as conn:
|
||||
end_stream = False
|
||||
while not end_stream:
|
||||
# TODO: Arbitrary read value.
|
||||
if received_data := self.sock.recv(65535):
|
||||
events = conn.receive_data(received_data)
|
||||
for event in events:
|
||||
if isinstance(event, h2.events.ResponseReceived):
|
||||
headers = HTTPHeaderDict()
|
||||
for header, value in event.headers:
|
||||
if header == b":status":
|
||||
status = int(value.decode())
|
||||
else:
|
||||
headers.add(
|
||||
header.decode("ascii"), value.decode("ascii")
|
||||
)
|
||||
|
||||
elif isinstance(event, h2.events.DataReceived):
|
||||
data += event.data
|
||||
conn.acknowledge_received_data(
|
||||
event.flow_controlled_length, event.stream_id
|
||||
)
|
||||
|
||||
elif isinstance(event, h2.events.StreamEnded):
|
||||
end_stream = True
|
||||
|
||||
if data_to_send := conn.data_to_send():
|
||||
self.sock.sendall(data_to_send)
|
||||
|
||||
assert status is not None
|
||||
return HTTP2Response(
|
||||
status=status,
|
||||
headers=headers,
|
||||
request_url=self._request_url,
|
||||
data=bytes(data),
|
||||
)
|
||||
|
||||
def request( # type: ignore[override]
|
||||
self,
|
||||
method: str,
|
||||
url: str,
|
||||
body: _TYPE_BODY | None = None,
|
||||
headers: typing.Mapping[str, str] | None = None,
|
||||
*,
|
||||
preload_content: bool = True,
|
||||
decode_content: bool = True,
|
||||
enforce_content_length: bool = True,
|
||||
**kwargs: typing.Any,
|
||||
) -> None:
|
||||
"""Send an HTTP/2 request"""
|
||||
if "chunked" in kwargs:
|
||||
# TODO this is often present from upstream.
|
||||
# raise NotImplementedError("`chunked` isn't supported with HTTP/2")
|
||||
pass
|
||||
|
||||
if self.sock is not None:
|
||||
self.sock.settimeout(self.timeout)
|
||||
|
||||
self.putrequest(method, url)
|
||||
|
||||
headers = headers or {}
|
||||
for k, v in headers.items():
|
||||
if k.lower() == "transfer-encoding" and v == "chunked":
|
||||
continue
|
||||
else:
|
||||
self.putheader(k, v)
|
||||
|
||||
if b"user-agent" not in dict(self._headers):
|
||||
self.putheader(b"user-agent", _get_default_user_agent())
|
||||
|
||||
if body:
|
||||
self.endheaders(message_body=body)
|
||||
self.send(body)
|
||||
else:
|
||||
self.endheaders()
|
||||
|
||||
def close(self) -> None:
|
||||
with self._h2_conn as conn:
|
||||
try:
|
||||
conn.close_connection()
|
||||
if data := conn.data_to_send():
|
||||
self.sock.sendall(data)
|
||||
except Exception:
|
||||
pass
|
||||
|
||||
# Reset all our HTTP/2 connection state.
|
||||
self._h2_conn = self._new_h2_conn()
|
||||
self._h2_stream = None
|
||||
self._headers = []
|
||||
|
||||
super().close()
|
||||
|
||||
|
||||
class HTTP2Response(BaseHTTPResponse):
|
||||
# TODO: This is a woefully incomplete response object, but works for non-streaming.
|
||||
def __init__(
|
||||
self,
|
||||
status: int,
|
||||
headers: HTTPHeaderDict,
|
||||
request_url: str,
|
||||
data: bytes,
|
||||
decode_content: bool = False, # TODO: support decoding
|
||||
) -> None:
|
||||
super().__init__(
|
||||
status=status,
|
||||
headers=headers,
|
||||
# Following CPython, we map HTTP versions to major * 10 + minor integers
|
||||
version=20,
|
||||
version_string="HTTP/2",
|
||||
# No reason phrase in HTTP/2
|
||||
reason=None,
|
||||
decode_content=decode_content,
|
||||
request_url=request_url,
|
||||
)
|
||||
self._data = data
|
||||
self.length_remaining = 0
|
||||
|
||||
@property
|
||||
def data(self) -> bytes:
|
||||
return self._data
|
||||
|
||||
def get_redirect_location(self) -> None:
|
||||
return None
|
||||
|
||||
def close(self) -> None:
|
||||
pass
|
||||
87
dist/ba_data/python-site-packages/urllib3/http2/probe.py
vendored
Normal file
87
dist/ba_data/python-site-packages/urllib3/http2/probe.py
vendored
Normal file
|
|
@ -0,0 +1,87 @@
|
|||
from __future__ import annotations
|
||||
|
||||
import threading
|
||||
|
||||
|
||||
class _HTTP2ProbeCache:
|
||||
__slots__ = (
|
||||
"_lock",
|
||||
"_cache_locks",
|
||||
"_cache_values",
|
||||
)
|
||||
|
||||
def __init__(self) -> None:
|
||||
self._lock = threading.Lock()
|
||||
self._cache_locks: dict[tuple[str, int], threading.RLock] = {}
|
||||
self._cache_values: dict[tuple[str, int], bool | None] = {}
|
||||
|
||||
def acquire_and_get(self, host: str, port: int) -> bool | None:
|
||||
# By the end of this block we know that
|
||||
# _cache_[values,locks] is available.
|
||||
value = None
|
||||
with self._lock:
|
||||
key = (host, port)
|
||||
try:
|
||||
value = self._cache_values[key]
|
||||
# If it's a known value we return right away.
|
||||
if value is not None:
|
||||
return value
|
||||
except KeyError:
|
||||
self._cache_locks[key] = threading.RLock()
|
||||
self._cache_values[key] = None
|
||||
|
||||
# If the value is unknown, we acquire the lock to signal
|
||||
# to the requesting thread that the probe is in progress
|
||||
# or that the current thread needs to return their findings.
|
||||
key_lock = self._cache_locks[key]
|
||||
key_lock.acquire()
|
||||
try:
|
||||
# If the by the time we get the lock the value has been
|
||||
# updated we want to return the updated value.
|
||||
value = self._cache_values[key]
|
||||
|
||||
# In case an exception like KeyboardInterrupt is raised here.
|
||||
except BaseException as e: # Defensive:
|
||||
assert not isinstance(e, KeyError) # KeyError shouldn't be possible.
|
||||
key_lock.release()
|
||||
raise
|
||||
|
||||
return value
|
||||
|
||||
def set_and_release(
|
||||
self, host: str, port: int, supports_http2: bool | None
|
||||
) -> None:
|
||||
key = (host, port)
|
||||
key_lock = self._cache_locks[key]
|
||||
with key_lock: # Uses an RLock, so can be locked again from same thread.
|
||||
if supports_http2 is None and self._cache_values[key] is not None:
|
||||
raise ValueError(
|
||||
"Cannot reset HTTP/2 support for origin after value has been set."
|
||||
) # Defensive: not expected in normal usage
|
||||
|
||||
self._cache_values[key] = supports_http2
|
||||
key_lock.release()
|
||||
|
||||
def _values(self) -> dict[tuple[str, int], bool | None]:
|
||||
"""This function is for testing purposes only. Gets the current state of the probe cache"""
|
||||
with self._lock:
|
||||
return {k: v for k, v in self._cache_values.items()}
|
||||
|
||||
def _reset(self) -> None:
|
||||
"""This function is for testing purposes only. Reset the cache values"""
|
||||
with self._lock:
|
||||
self._cache_locks = {}
|
||||
self._cache_values = {}
|
||||
|
||||
|
||||
_HTTP2_PROBE_CACHE = _HTTP2ProbeCache()
|
||||
|
||||
set_and_release = _HTTP2_PROBE_CACHE.set_and_release
|
||||
acquire_and_get = _HTTP2_PROBE_CACHE.acquire_and_get
|
||||
_values = _HTTP2_PROBE_CACHE._values
|
||||
_reset = _HTTP2_PROBE_CACHE._reset
|
||||
|
||||
__all__ = [
|
||||
"set_and_release",
|
||||
"acquire_and_get",
|
||||
]
|
||||
|
|
@ -26,7 +26,8 @@ from .util.url import Url, parse_url
|
|||
|
||||
if typing.TYPE_CHECKING:
|
||||
import ssl
|
||||
from typing import Literal
|
||||
|
||||
from typing_extensions import Self
|
||||
|
||||
__all__ = ["PoolManager", "ProxyManager", "proxy_from_url"]
|
||||
|
||||
|
|
@ -51,8 +52,6 @@ SSL_KEYWORDS = (
|
|||
# http.client.HTTPConnection & http.client.HTTPSConnection in Python 3.7
|
||||
_DEFAULT_BLOCKSIZE = 16384
|
||||
|
||||
_SelfT = typing.TypeVar("_SelfT")
|
||||
|
||||
|
||||
class PoolKey(typing.NamedTuple):
|
||||
"""
|
||||
|
|
@ -214,7 +213,7 @@ class PoolManager(RequestMethods):
|
|||
self.pool_classes_by_scheme = pool_classes_by_scheme
|
||||
self.key_fn_by_scheme = key_fn_by_scheme.copy()
|
||||
|
||||
def __enter__(self: _SelfT) -> _SelfT:
|
||||
def __enter__(self) -> Self:
|
||||
return self
|
||||
|
||||
def __exit__(
|
||||
|
|
@ -222,7 +221,7 @@ class PoolManager(RequestMethods):
|
|||
exc_type: type[BaseException] | None,
|
||||
exc_val: BaseException | None,
|
||||
exc_tb: TracebackType | None,
|
||||
) -> Literal[False]:
|
||||
) -> typing.Literal[False]:
|
||||
self.clear()
|
||||
# Return False to re-raise any potential exceptions
|
||||
return False
|
||||
|
|
@ -553,7 +552,7 @@ class ProxyManager(PoolManager):
|
|||
proxy_headers: typing.Mapping[str, str] | None = None,
|
||||
proxy_ssl_context: ssl.SSLContext | None = None,
|
||||
use_forwarding_for_https: bool = False,
|
||||
proxy_assert_hostname: None | str | Literal[False] = None,
|
||||
proxy_assert_hostname: None | str | typing.Literal[False] = None,
|
||||
proxy_assert_fingerprint: str | None = None,
|
||||
**connection_pool_kw: typing.Any,
|
||||
) -> None:
|
||||
|
|
|
|||
|
|
@ -5,6 +5,7 @@ import io
|
|||
import json as _json
|
||||
import logging
|
||||
import re
|
||||
import socket
|
||||
import sys
|
||||
import typing
|
||||
import warnings
|
||||
|
|
@ -26,20 +27,21 @@ except ImportError:
|
|||
brotli = None
|
||||
|
||||
try:
|
||||
import zstandard as zstd # type: ignore[import-not-found]
|
||||
|
||||
import zstandard as zstd
|
||||
except (AttributeError, ImportError, ValueError): # Defensive:
|
||||
HAS_ZSTD = False
|
||||
else:
|
||||
# The package 'zstandard' added the 'eof' property starting
|
||||
# in v0.18.0 which we require to ensure a complete and
|
||||
# valid zstd stream was fed into the ZstdDecoder.
|
||||
# See: https://github.com/urllib3/urllib3/pull/2624
|
||||
_zstd_version = _zstd_version = tuple(
|
||||
_zstd_version = tuple(
|
||||
map(int, re.search(r"^([0-9]+)\.([0-9]+)", zstd.__version__).groups()) # type: ignore[union-attr]
|
||||
)
|
||||
if _zstd_version < (0, 18): # Defensive:
|
||||
zstd = None
|
||||
|
||||
except (AttributeError, ImportError, ValueError): # Defensive:
|
||||
zstd = None
|
||||
HAS_ZSTD = False
|
||||
else:
|
||||
HAS_ZSTD = True
|
||||
|
||||
from . import util
|
||||
from ._base_connection import _TYPE_BODY
|
||||
|
|
@ -61,8 +63,6 @@ from .util.response import is_fp_closed, is_response_to_head
|
|||
from .util.retry import Retry
|
||||
|
||||
if typing.TYPE_CHECKING:
|
||||
from typing import Literal
|
||||
|
||||
from .connectionpool import HTTPConnectionPool
|
||||
|
||||
log = logging.getLogger(__name__)
|
||||
|
|
@ -163,7 +163,7 @@ if brotli is not None:
|
|||
return b""
|
||||
|
||||
|
||||
if zstd is not None:
|
||||
if HAS_ZSTD:
|
||||
|
||||
class ZstdDecoder(ContentDecoder):
|
||||
def __init__(self) -> None:
|
||||
|
|
@ -183,7 +183,7 @@ if zstd is not None:
|
|||
ret = self._obj.flush() # note: this is a no-op
|
||||
if not self._obj.eof:
|
||||
raise DecodeError("Zstandard data is incomplete")
|
||||
return ret # type: ignore[no-any-return]
|
||||
return ret
|
||||
|
||||
|
||||
class MultiDecoder(ContentDecoder):
|
||||
|
|
@ -219,7 +219,7 @@ def _get_decoder(mode: str) -> ContentDecoder:
|
|||
if brotli is not None and mode == "br":
|
||||
return BrotliDecoder()
|
||||
|
||||
if zstd is not None and mode == "zstd":
|
||||
if HAS_ZSTD and mode == "zstd":
|
||||
return ZstdDecoder()
|
||||
|
||||
return DeflateDecoder()
|
||||
|
|
@ -302,7 +302,7 @@ class BaseHTTPResponse(io.IOBase):
|
|||
CONTENT_DECODERS = ["gzip", "x-gzip", "deflate"]
|
||||
if brotli is not None:
|
||||
CONTENT_DECODERS += ["br"]
|
||||
if zstd is not None:
|
||||
if HAS_ZSTD:
|
||||
CONTENT_DECODERS += ["zstd"]
|
||||
REDIRECT_STATUSES = [301, 302, 303, 307, 308]
|
||||
|
||||
|
|
@ -310,7 +310,7 @@ class BaseHTTPResponse(io.IOBase):
|
|||
if brotli is not None:
|
||||
DECODER_ERROR_CLASSES += (brotli.error,)
|
||||
|
||||
if zstd is not None:
|
||||
if HAS_ZSTD:
|
||||
DECODER_ERROR_CLASSES += (zstd.ZstdError,)
|
||||
|
||||
def __init__(
|
||||
|
|
@ -319,6 +319,7 @@ class BaseHTTPResponse(io.IOBase):
|
|||
headers: typing.Mapping[str, str] | typing.Mapping[bytes, bytes] | None = None,
|
||||
status: int,
|
||||
version: int,
|
||||
version_string: str,
|
||||
reason: str | None,
|
||||
decode_content: bool,
|
||||
request_url: str | None,
|
||||
|
|
@ -330,6 +331,7 @@ class BaseHTTPResponse(io.IOBase):
|
|||
self.headers = HTTPHeaderDict(headers) # type: ignore[arg-type]
|
||||
self.status = status
|
||||
self.version = version
|
||||
self.version_string = version_string
|
||||
self.reason = reason
|
||||
self.decode_content = decode_content
|
||||
self._has_decoded_content = False
|
||||
|
|
@ -346,7 +348,7 @@ class BaseHTTPResponse(io.IOBase):
|
|||
self._decoder: ContentDecoder | None = None
|
||||
self.length_remaining: int | None
|
||||
|
||||
def get_redirect_location(self) -> str | None | Literal[False]:
|
||||
def get_redirect_location(self) -> str | None | typing.Literal[False]:
|
||||
"""
|
||||
Should we redirect and where to?
|
||||
|
||||
|
|
@ -364,13 +366,21 @@ class BaseHTTPResponse(io.IOBase):
|
|||
|
||||
def json(self) -> typing.Any:
|
||||
"""
|
||||
Parses the body of the HTTP response as JSON.
|
||||
Deserializes the body of the HTTP response as a Python object.
|
||||
|
||||
To use a custom JSON decoder pass the result of :attr:`HTTPResponse.data` to the decoder.
|
||||
The body of the HTTP response must be encoded using UTF-8, as per
|
||||
`RFC 8529 Section 8.1 <https://www.rfc-editor.org/rfc/rfc8259#section-8.1>`_.
|
||||
|
||||
This method can raise either `UnicodeDecodeError` or `json.JSONDecodeError`.
|
||||
To use a custom JSON decoder pass the result of :attr:`HTTPResponse.data` to
|
||||
your custom decoder instead.
|
||||
|
||||
Read more :ref:`here <json>`.
|
||||
If the body of the HTTP response is not decodable to UTF-8, a
|
||||
`UnicodeDecodeError` will be raised. If the body of the HTTP response is not a
|
||||
valid JSON document, a `json.JSONDecodeError` will be raised.
|
||||
|
||||
Read more :ref:`here <json_content>`.
|
||||
|
||||
:returns: The body of the HTTP response as a Python object.
|
||||
"""
|
||||
data = self.data.decode("utf-8")
|
||||
return _json.loads(data)
|
||||
|
|
@ -431,6 +441,9 @@ class BaseHTTPResponse(io.IOBase):
|
|||
def drain_conn(self) -> None:
|
||||
raise NotImplementedError()
|
||||
|
||||
def shutdown(self) -> None:
|
||||
raise NotImplementedError()
|
||||
|
||||
def close(self) -> None:
|
||||
raise NotImplementedError()
|
||||
|
||||
|
|
@ -567,6 +580,7 @@ class HTTPResponse(BaseHTTPResponse):
|
|||
headers: typing.Mapping[str, str] | typing.Mapping[bytes, bytes] | None = None,
|
||||
status: int = 0,
|
||||
version: int = 0,
|
||||
version_string: str = "HTTP/?",
|
||||
reason: str | None = None,
|
||||
preload_content: bool = True,
|
||||
decode_content: bool = True,
|
||||
|
|
@ -579,11 +593,13 @@ class HTTPResponse(BaseHTTPResponse):
|
|||
request_method: str | None = None,
|
||||
request_url: str | None = None,
|
||||
auto_close: bool = True,
|
||||
sock_shutdown: typing.Callable[[int], None] | None = None,
|
||||
) -> None:
|
||||
super().__init__(
|
||||
headers=headers,
|
||||
status=status,
|
||||
version=version,
|
||||
version_string=version_string,
|
||||
reason=reason,
|
||||
decode_content=decode_content,
|
||||
request_url=request_url,
|
||||
|
|
@ -607,6 +623,7 @@ class HTTPResponse(BaseHTTPResponse):
|
|||
|
||||
if hasattr(body, "read"):
|
||||
self._fp = body # type: ignore[assignment]
|
||||
self._sock_shutdown = sock_shutdown
|
||||
|
||||
# Are we using the chunked-style of transfer encoding?
|
||||
self.chunk_left: int | None = None
|
||||
|
|
@ -722,7 +739,7 @@ class HTTPResponse(BaseHTTPResponse):
|
|||
return length
|
||||
|
||||
@contextmanager
|
||||
def _error_catcher(self) -> typing.Generator[None, None, None]:
|
||||
def _error_catcher(self) -> typing.Generator[None]:
|
||||
"""
|
||||
Catch low-level python exceptions, instead re-raising urllib3
|
||||
variants, so that low-level exceptions are not leaked in the
|
||||
|
|
@ -801,7 +818,7 @@ class HTTPResponse(BaseHTTPResponse):
|
|||
happen.
|
||||
|
||||
The known cases:
|
||||
* 3.8 <= CPython < 3.9.7 because of a bug
|
||||
* CPython < 3.9.7 because of a bug
|
||||
https://github.com/urllib3/urllib3/issues/2513#issuecomment-1152559900.
|
||||
* urllib3 injected with pyOpenSSL-backed SSL-support.
|
||||
* CPython < 3.10 only when `amt` does not fit 32-bit int.
|
||||
|
|
@ -926,7 +943,10 @@ class HTTPResponse(BaseHTTPResponse):
|
|||
if decode_content is None:
|
||||
decode_content = self.decode_content
|
||||
|
||||
if amt is not None:
|
||||
if amt and amt < 0:
|
||||
# Negative numbers and `None` should be treated the same.
|
||||
amt = None
|
||||
elif amt is not None:
|
||||
cache_content = False
|
||||
|
||||
if len(self._decoded_buffer) >= amt:
|
||||
|
|
@ -986,6 +1006,9 @@ class HTTPResponse(BaseHTTPResponse):
|
|||
"""
|
||||
if decode_content is None:
|
||||
decode_content = self.decode_content
|
||||
if amt and amt < 0:
|
||||
# Negative numbers and `None` should be treated the same.
|
||||
amt = None
|
||||
# try and respond without going to the network
|
||||
if self._has_decoded_content:
|
||||
if not decode_content:
|
||||
|
|
@ -1020,7 +1043,7 @@ class HTTPResponse(BaseHTTPResponse):
|
|||
|
||||
def stream(
|
||||
self, amt: int | None = 2**16, decode_content: bool | None = None
|
||||
) -> typing.Generator[bytes, None, None]:
|
||||
) -> typing.Generator[bytes]:
|
||||
"""
|
||||
A generator wrapper for the read() method. A call will block until
|
||||
``amt`` bytes have been read from the connection or until the
|
||||
|
|
@ -1049,7 +1072,14 @@ class HTTPResponse(BaseHTTPResponse):
|
|||
def readable(self) -> bool:
|
||||
return True
|
||||
|
||||
def shutdown(self) -> None:
|
||||
if not self._sock_shutdown:
|
||||
raise ValueError("Cannot shutdown socket as self._sock_shutdown is not set")
|
||||
self._sock_shutdown(socket.SHUT_RD)
|
||||
|
||||
def close(self) -> None:
|
||||
self._sock_shutdown = None
|
||||
|
||||
if not self.closed and self._fp:
|
||||
self._fp.close()
|
||||
|
||||
|
|
@ -1142,7 +1172,7 @@ class HTTPResponse(BaseHTTPResponse):
|
|||
|
||||
def read_chunked(
|
||||
self, amt: int | None = None, decode_content: bool | None = None
|
||||
) -> typing.Generator[bytes, None, None]:
|
||||
) -> typing.Generator[bytes]:
|
||||
"""
|
||||
Similar to :meth:`HTTPResponse.read`, but with an additional
|
||||
parameter: ``decode_content``.
|
||||
|
|
@ -1180,6 +1210,11 @@ class HTTPResponse(BaseHTTPResponse):
|
|||
if self._fp.fp is None: # type: ignore[union-attr]
|
||||
return None
|
||||
|
||||
if amt and amt < 0:
|
||||
# Negative numbers and `None` should be treated the same,
|
||||
# but httplib handles only `None` correctly.
|
||||
amt = None
|
||||
|
||||
while True:
|
||||
self._update_chunk_length()
|
||||
if self.chunk_left == 0:
|
||||
|
|
|
|||
|
|
@ -6,7 +6,7 @@ import typing
|
|||
from ..exceptions import LocationParseError
|
||||
from .timeout import _DEFAULT_TIMEOUT, _TYPE_TIMEOUT
|
||||
|
||||
_TYPE_SOCKET_OPTIONS = typing.Sequence[typing.Tuple[int, int, typing.Union[int, bytes]]]
|
||||
_TYPE_SOCKET_OPTIONS = list[tuple[int, int, typing.Union[int, bytes]]]
|
||||
|
||||
if typing.TYPE_CHECKING:
|
||||
from .._base_connection import BaseHTTPConnection
|
||||
|
|
|
|||
|
|
@ -29,7 +29,7 @@ except ImportError:
|
|||
else:
|
||||
ACCEPT_ENCODING += ",br"
|
||||
try:
|
||||
import zstandard as _unused_module_zstd # type: ignore[import-not-found] # noqa: F401
|
||||
import zstandard as _unused_module_zstd # noqa: F401
|
||||
except ImportError:
|
||||
pass
|
||||
else:
|
||||
|
|
@ -68,8 +68,10 @@ def make_headers(
|
|||
|
||||
:param accept_encoding:
|
||||
Can be a boolean, list, or string.
|
||||
``True`` translates to 'gzip,deflate'. If either the ``brotli`` or
|
||||
``brotlicffi`` package is installed 'gzip,deflate,br' is used instead.
|
||||
``True`` translates to 'gzip,deflate'. If the dependencies for
|
||||
Brotli (either the ``brotli`` or ``brotlicffi`` package) and/or Zstandard
|
||||
(the ``zstandard`` package) algorithms are installed, then their encodings are
|
||||
included in the string ('br' and 'zstd', respectively).
|
||||
List will get joined by comma.
|
||||
String will be used as provided.
|
||||
|
||||
|
|
@ -116,14 +118,14 @@ def make_headers(
|
|||
headers["connection"] = "keep-alive"
|
||||
|
||||
if basic_auth:
|
||||
headers[
|
||||
"authorization"
|
||||
] = f"Basic {b64encode(basic_auth.encode('latin-1')).decode()}"
|
||||
headers["authorization"] = (
|
||||
f"Basic {b64encode(basic_auth.encode('latin-1')).decode()}"
|
||||
)
|
||||
|
||||
if proxy_basic_auth:
|
||||
headers[
|
||||
"proxy-authorization"
|
||||
] = f"Basic {b64encode(proxy_basic_auth.encode('latin-1')).decode()}"
|
||||
headers["proxy-authorization"] = (
|
||||
f"Basic {b64encode(proxy_basic_auth.encode('latin-1')).decode()}"
|
||||
)
|
||||
|
||||
if disable_cache:
|
||||
headers["cache-control"] = "no-cache"
|
||||
|
|
@ -227,7 +229,7 @@ def body_to_chunks(
|
|||
if not datablock:
|
||||
break
|
||||
if encode:
|
||||
datablock = datablock.encode("iso-8859-1")
|
||||
datablock = datablock.encode("utf-8")
|
||||
yield datablock
|
||||
|
||||
chunks = chunk_readable()
|
||||
|
|
|
|||
|
|
@ -21,6 +21,8 @@ from ..exceptions import (
|
|||
from .util import reraise
|
||||
|
||||
if typing.TYPE_CHECKING:
|
||||
from typing_extensions import Self
|
||||
|
||||
from ..connectionpool import ConnectionPool
|
||||
from ..response import BaseHTTPResponse
|
||||
|
||||
|
|
@ -187,7 +189,9 @@ class Retry:
|
|||
RETRY_AFTER_STATUS_CODES = frozenset([413, 429, 503])
|
||||
|
||||
#: Default headers to be used for ``remove_headers_on_redirect``
|
||||
DEFAULT_REMOVE_HEADERS_ON_REDIRECT = frozenset(["Cookie", "Authorization"])
|
||||
DEFAULT_REMOVE_HEADERS_ON_REDIRECT = frozenset(
|
||||
["Cookie", "Authorization", "Proxy-Authorization"]
|
||||
)
|
||||
|
||||
#: Default maximum backoff time.
|
||||
DEFAULT_BACKOFF_MAX = 120
|
||||
|
|
@ -240,7 +244,7 @@ class Retry:
|
|||
)
|
||||
self.backoff_jitter = backoff_jitter
|
||||
|
||||
def new(self, **kw: typing.Any) -> Retry:
|
||||
def new(self, **kw: typing.Any) -> Self:
|
||||
params = dict(
|
||||
total=self.total,
|
||||
connect=self.connect,
|
||||
|
|
@ -429,7 +433,7 @@ class Retry:
|
|||
error: Exception | None = None,
|
||||
_pool: ConnectionPool | None = None,
|
||||
_stacktrace: TracebackType | None = None,
|
||||
) -> Retry:
|
||||
) -> Self:
|
||||
"""Return a new Retry object with incremented retry counters.
|
||||
|
||||
:param response: A response object, or None, if the server did not
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
from __future__ import annotations
|
||||
|
||||
import hashlib
|
||||
import hmac
|
||||
import os
|
||||
import socket
|
||||
|
|
@ -7,7 +8,6 @@ import sys
|
|||
import typing
|
||||
import warnings
|
||||
from binascii import unhexlify
|
||||
from hashlib import md5, sha1, sha256
|
||||
|
||||
from ..exceptions import ProxySchemeUnsupported, SSLError
|
||||
from .url import _BRACELESS_IPV6_ADDRZ_RE, _IPV4_RE
|
||||
|
|
@ -18,10 +18,13 @@ HAS_NEVER_CHECK_COMMON_NAME = False
|
|||
IS_PYOPENSSL = False
|
||||
ALPN_PROTOCOLS = ["http/1.1"]
|
||||
|
||||
_TYPE_VERSION_INFO = typing.Tuple[int, int, int, str, int]
|
||||
_TYPE_VERSION_INFO = tuple[int, int, int, str, int]
|
||||
|
||||
# Maps the length of a digest to a possible hash function producing this digest
|
||||
HASHFUNC_MAP = {32: md5, 40: sha1, 64: sha256}
|
||||
HASHFUNC_MAP = {
|
||||
length: getattr(hashlib, algorithm, None)
|
||||
for length, algorithm in ((32, "md5"), (40, "sha1"), (64, "sha256"))
|
||||
}
|
||||
|
||||
|
||||
def _is_bpo_43522_fixed(
|
||||
|
|
@ -29,7 +32,7 @@ def _is_bpo_43522_fixed(
|
|||
version_info: _TYPE_VERSION_INFO,
|
||||
pypy_version_info: _TYPE_VERSION_INFO | None,
|
||||
) -> bool:
|
||||
"""Return True for CPython 3.8.9+, 3.9.3+ or 3.10+ and PyPy 7.3.8+ where
|
||||
"""Return True for CPython 3.9.3+ or 3.10+ and PyPy 7.3.8+ where
|
||||
setting SSLContext.hostname_checks_common_name to False works.
|
||||
|
||||
Outside of CPython and PyPy we don't know which implementations work
|
||||
|
|
@ -45,11 +48,7 @@ def _is_bpo_43522_fixed(
|
|||
elif implementation_name == "cpython":
|
||||
major_minor = version_info[:2]
|
||||
micro = version_info[2]
|
||||
return (
|
||||
(major_minor == (3, 8) and micro >= 9)
|
||||
or (major_minor == (3, 9) and micro >= 3)
|
||||
or major_minor >= (3, 10)
|
||||
)
|
||||
return (major_minor == (3, 9) and micro >= 3) or major_minor >= (3, 10)
|
||||
else: # Defensive:
|
||||
return False
|
||||
|
||||
|
|
@ -78,7 +77,7 @@ def _is_has_never_check_common_name_reliable(
|
|||
|
||||
if typing.TYPE_CHECKING:
|
||||
from ssl import VerifyMode
|
||||
from typing import Literal, TypedDict
|
||||
from typing import TypedDict
|
||||
|
||||
from .ssltransport import SSLTransport as SSLTransportType
|
||||
|
||||
|
|
@ -111,7 +110,7 @@ try: # Do we have ssl at all?
|
|||
PROTOCOL_SSLv23 = PROTOCOL_TLS
|
||||
|
||||
# Setting SSLContext.hostname_checks_common_name = False didn't work before CPython
|
||||
# 3.8.9, 3.9.3, and 3.10 (but OK on PyPy) or OpenSSL 1.1.1l+
|
||||
# 3.9.3, and 3.10 (but OK on PyPy) or OpenSSL 1.1.1l+
|
||||
if HAS_NEVER_CHECK_COMMON_NAME and not _is_has_never_check_common_name_reliable(
|
||||
OPENSSL_VERSION,
|
||||
OPENSSL_VERSION_NUMBER,
|
||||
|
|
@ -159,9 +158,13 @@ def assert_fingerprint(cert: bytes | None, fingerprint: str) -> None:
|
|||
|
||||
fingerprint = fingerprint.replace(":", "").lower()
|
||||
digest_length = len(fingerprint)
|
||||
hashfunc = HASHFUNC_MAP.get(digest_length)
|
||||
if not hashfunc:
|
||||
if digest_length not in HASHFUNC_MAP:
|
||||
raise SSLError(f"Fingerprint of invalid length: {fingerprint}")
|
||||
hashfunc = HASHFUNC_MAP.get(digest_length)
|
||||
if hashfunc is None:
|
||||
raise SSLError(
|
||||
f"Hash function implementation unavailable for fingerprint length: {digest_length}"
|
||||
)
|
||||
|
||||
# We need encode() here for py32; works on py2 and p33.
|
||||
fingerprint_bytes = unhexlify(fingerprint.encode())
|
||||
|
|
@ -338,15 +341,12 @@ def create_urllib3_context(
|
|||
|
||||
try:
|
||||
context.hostname_checks_common_name = False
|
||||
except AttributeError: # Defensive: for CPython < 3.8.9 and 3.9.3; for PyPy < 7.3.8
|
||||
except AttributeError: # Defensive: for CPython < 3.9.3; for PyPy < 7.3.8
|
||||
pass
|
||||
|
||||
# Enable logging of TLS session keys via defacto standard environment variable
|
||||
# 'SSLKEYLOGFILE', if the feature is available (Python 3.8+). Skip empty values.
|
||||
if hasattr(context, "keylog_filename"):
|
||||
sslkeylogfile = os.environ.get("SSLKEYLOGFILE")
|
||||
if sslkeylogfile:
|
||||
context.keylog_filename = sslkeylogfile
|
||||
sslkeylogfile = os.environ.get("SSLKEYLOGFILE")
|
||||
if sslkeylogfile:
|
||||
context.keylog_filename = sslkeylogfile
|
||||
|
||||
return context
|
||||
|
||||
|
|
@ -365,9 +365,8 @@ def ssl_wrap_socket(
|
|||
ca_cert_dir: str | None = ...,
|
||||
key_password: str | None = ...,
|
||||
ca_cert_data: None | str | bytes = ...,
|
||||
tls_in_tls: Literal[False] = ...,
|
||||
) -> ssl.SSLSocket:
|
||||
...
|
||||
tls_in_tls: typing.Literal[False] = ...,
|
||||
) -> ssl.SSLSocket: ...
|
||||
|
||||
|
||||
@typing.overload
|
||||
|
|
@ -385,8 +384,7 @@ def ssl_wrap_socket(
|
|||
key_password: str | None = ...,
|
||||
ca_cert_data: None | str | bytes = ...,
|
||||
tls_in_tls: bool = ...,
|
||||
) -> ssl.SSLSocket | SSLTransportType:
|
||||
...
|
||||
) -> ssl.SSLSocket | SSLTransportType: ...
|
||||
|
||||
|
||||
def ssl_wrap_socket(
|
||||
|
|
@ -457,10 +455,7 @@ def ssl_wrap_socket(
|
|||
else:
|
||||
context.load_cert_chain(certfile, keyfile, key_password)
|
||||
|
||||
try:
|
||||
context.set_alpn_protocols(ALPN_PROTOCOLS)
|
||||
except NotImplementedError: # Defensive: in CI, we always have set_alpn_protocols
|
||||
pass
|
||||
context.set_alpn_protocols(ALPN_PROTOCOLS)
|
||||
|
||||
ssl_sock = _ssl_wrap_socket_impl(sock, context, tls_in_tls, server_hostname)
|
||||
return ssl_sock
|
||||
|
|
|
|||
|
|
@ -8,12 +8,11 @@ import typing
|
|||
from ..exceptions import ProxySchemeUnsupported
|
||||
|
||||
if typing.TYPE_CHECKING:
|
||||
from typing import Literal
|
||||
from typing_extensions import Self
|
||||
|
||||
from .ssl_ import _TYPE_PEER_CERT_RET, _TYPE_PEER_CERT_RET_DICT
|
||||
|
||||
|
||||
_SelfT = typing.TypeVar("_SelfT", bound="SSLTransport")
|
||||
_WriteBuffer = typing.Union[bytearray, memoryview]
|
||||
_ReturnValue = typing.TypeVar("_ReturnValue")
|
||||
|
||||
|
|
@ -70,7 +69,7 @@ class SSLTransport:
|
|||
# Perform initial handshake.
|
||||
self._ssl_io_loop(self.sslobj.do_handshake)
|
||||
|
||||
def __enter__(self: _SelfT) -> _SelfT:
|
||||
def __enter__(self) -> Self:
|
||||
return self
|
||||
|
||||
def __exit__(self, *_: typing.Any) -> None:
|
||||
|
|
@ -174,13 +173,11 @@ class SSLTransport:
|
|||
|
||||
@typing.overload
|
||||
def getpeercert(
|
||||
self, binary_form: Literal[False] = ...
|
||||
) -> _TYPE_PEER_CERT_RET_DICT | None:
|
||||
...
|
||||
self, binary_form: typing.Literal[False] = ...
|
||||
) -> _TYPE_PEER_CERT_RET_DICT | None: ...
|
||||
|
||||
@typing.overload
|
||||
def getpeercert(self, binary_form: Literal[True]) -> bytes | None:
|
||||
...
|
||||
def getpeercert(self, binary_form: typing.Literal[True]) -> bytes | None: ...
|
||||
|
||||
def getpeercert(self, binary_form: bool = False) -> _TYPE_PEER_CERT_RET:
|
||||
return self.sslobj.getpeercert(binary_form) # type: ignore[return-value]
|
||||
|
|
@ -194,9 +191,6 @@ class SSLTransport:
|
|||
def selected_alpn_protocol(self) -> str | None:
|
||||
return self.sslobj.selected_alpn_protocol()
|
||||
|
||||
def selected_npn_protocol(self) -> str | None:
|
||||
return self.sslobj.selected_npn_protocol()
|
||||
|
||||
def shared_ciphers(self) -> list[tuple[str, str, int]] | None:
|
||||
return self.sslobj.shared_ciphers()
|
||||
|
||||
|
|
@ -223,13 +217,11 @@ class SSLTransport:
|
|||
|
||||
# func is sslobj.do_handshake or sslobj.unwrap
|
||||
@typing.overload
|
||||
def _ssl_io_loop(self, func: typing.Callable[[], None]) -> None:
|
||||
...
|
||||
def _ssl_io_loop(self, func: typing.Callable[[], None]) -> None: ...
|
||||
|
||||
# func is sslobj.write, arg1 is data
|
||||
@typing.overload
|
||||
def _ssl_io_loop(self, func: typing.Callable[[bytes], int], arg1: bytes) -> int:
|
||||
...
|
||||
def _ssl_io_loop(self, func: typing.Callable[[bytes], int], arg1: bytes) -> int: ...
|
||||
|
||||
# func is sslobj.read, arg1 is len, arg2 is buffer
|
||||
@typing.overload
|
||||
|
|
@ -238,8 +230,7 @@ class SSLTransport:
|
|||
func: typing.Callable[[int, bytearray | None], bytes],
|
||||
arg1: int,
|
||||
arg2: bytearray | None,
|
||||
) -> bytes:
|
||||
...
|
||||
) -> bytes: ...
|
||||
|
||||
def _ssl_io_loop(
|
||||
self,
|
||||
|
|
|
|||
|
|
@ -291,13 +291,11 @@ def _remove_path_dot_segments(path: str) -> str:
|
|||
|
||||
|
||||
@typing.overload
|
||||
def _normalize_host(host: None, scheme: str | None) -> None:
|
||||
...
|
||||
def _normalize_host(host: None, scheme: str | None) -> None: ...
|
||||
|
||||
|
||||
@typing.overload
|
||||
def _normalize_host(host: str, scheme: str | None) -> str:
|
||||
...
|
||||
def _normalize_host(host: str, scheme: str | None) -> str: ...
|
||||
|
||||
|
||||
def _normalize_host(host: str | None, scheme: str | None) -> str | None:
|
||||
|
|
|
|||
13
dist/ba_data/python/babase/__init__.py
vendored
13
dist/ba_data/python/babase/__init__.py
vendored
|
|
@ -17,7 +17,7 @@ functionality from here and reexpose it in a more focused way.
|
|||
# dependency loops. The exception is TYPE_CHECKING blocks and
|
||||
# annotations since those aren't evaluated at runtime.
|
||||
|
||||
from efro.util import set_canonical_module_names
|
||||
# from efro.util import set_canonical_module_names
|
||||
|
||||
import _babase
|
||||
from _babase import (
|
||||
|
|
@ -124,6 +124,7 @@ from _babase import (
|
|||
|
||||
from babase._accountv2 import AccountV2Handle, AccountV2Subsystem
|
||||
from babase._app import App, AppState
|
||||
from babase._appcomponent import AppComponentSubsystem
|
||||
from babase._appconfig import commit_app_config
|
||||
from babase._appintent import AppIntent, AppIntentDefault, AppIntentExec
|
||||
from babase._appmode import AppMode
|
||||
|
|
@ -174,6 +175,7 @@ from babase._general import (
|
|||
get_type_name,
|
||||
)
|
||||
from babase._language import Lstr, LanguageSubsystem
|
||||
from babase._locale import LocaleSubsystem
|
||||
from babase._logging import balog, applog, lifecyclelog
|
||||
from babase._login import LoginAdapter, LoginInfo
|
||||
|
||||
|
|
@ -194,9 +196,9 @@ from babase._net import (
|
|||
from babase._plugin import PluginSpec, Plugin, PluginSubsystem
|
||||
from babase._stringedit import StringEditAdapter, StringEditSubsystem
|
||||
from babase._text import timestring
|
||||
from babase._workspace import WorkspaceSubsystem
|
||||
|
||||
_babase.app = app = App()
|
||||
app.postinit()
|
||||
|
||||
__all__ = [
|
||||
'AccountV2Handle',
|
||||
|
|
@ -208,6 +210,7 @@ __all__ = [
|
|||
'android_get_external_files_dir',
|
||||
'app',
|
||||
'App',
|
||||
'AppComponentSubsystem',
|
||||
'AppConfig',
|
||||
'AppHealthSubsystem',
|
||||
'AppIntent',
|
||||
|
|
@ -293,6 +296,7 @@ __all__ = [
|
|||
'is_point_in_box',
|
||||
'is_xcode_build',
|
||||
'LanguageSubsystem',
|
||||
'LocaleSubsystem',
|
||||
'lifecyclelog',
|
||||
'lock_all_input',
|
||||
'LoginAdapter',
|
||||
|
|
@ -372,11 +376,14 @@ __all__ = [
|
|||
'WeakCall',
|
||||
'WidgetNotFoundError',
|
||||
'workspaces_in_use',
|
||||
'WorkspaceSubsystem',
|
||||
'DEFAULT_REQUEST_TIMEOUT_SECONDS',
|
||||
]
|
||||
|
||||
# We want stuff to show up as babase.Foo instead of babase._sub.Foo.
|
||||
set_canonical_module_names(globals())
|
||||
# UPDATE: Trying without this for now. Seems like this might cause more
|
||||
# harm than good. Can flip it back on if it is missed.
|
||||
# set_canonical_module_names(globals())
|
||||
|
||||
# Allow the native layer to wrap a few things up.
|
||||
_babase.reached_end_of_babase()
|
||||
|
|
|
|||
73
dist/ba_data/python/babase/_app.py
vendored
73
dist/ba_data/python/babase/_app.py
vendored
|
|
@ -8,13 +8,14 @@ import os
|
|||
import logging
|
||||
from enum import Enum
|
||||
from functools import partial
|
||||
from typing import TYPE_CHECKING, TypeVar, override
|
||||
from typing import TYPE_CHECKING, override
|
||||
from threading import RLock
|
||||
|
||||
from efro.threadpool import ThreadPoolExecutorEx
|
||||
|
||||
import _babase
|
||||
from babase._language import LanguageSubsystem
|
||||
from babase._locale import LocaleSubsystem
|
||||
from babase._plugin import PluginSubsystem
|
||||
from babase._meta import MetadataSubsystem
|
||||
from babase._net import NetworkSubsystem
|
||||
|
|
@ -45,8 +46,6 @@ if TYPE_CHECKING:
|
|||
|
||||
# __FEATURESET_APP_SUBSYSTEM_IMPORTS_END__
|
||||
|
||||
T = TypeVar('T')
|
||||
|
||||
|
||||
class App:
|
||||
"""High level Ballistica app functionality and state.
|
||||
|
|
@ -62,12 +61,6 @@ class App:
|
|||
# available until the app starts (so we need to predeclare them
|
||||
# here).
|
||||
|
||||
#: Subsystem for wrangling plugins.
|
||||
plugins: PluginSubsystem
|
||||
|
||||
#: Language subsystem.
|
||||
lang: LanguageSubsystem
|
||||
|
||||
#: Subsystem for keeping tabs on app health.
|
||||
health: AppHealthSubsystem
|
||||
|
||||
|
|
@ -90,6 +83,9 @@ class App:
|
|||
if os.environ.get('BA_RUNNING_WITH_DUMMY_MODULES') == '1':
|
||||
return
|
||||
|
||||
self._subsystems: list[AppSubsystem] = []
|
||||
self._subsystem_registration_ended = False
|
||||
|
||||
#: Config values for the app.
|
||||
self.config: AppConfig = AppConfig(_babase.get_initial_app_config())
|
||||
_babase.set_app_config(self.config)
|
||||
|
|
@ -109,6 +105,21 @@ class App:
|
|||
initializer=self._thread_pool_thread_init,
|
||||
)
|
||||
|
||||
#: Locale related functionality.
|
||||
self.locale: LocaleSubsystem = self.register_subsystem(
|
||||
LocaleSubsystem()
|
||||
)
|
||||
|
||||
#: Language related functionality.
|
||||
self.lang: LanguageSubsystem = self.register_subsystem(
|
||||
LanguageSubsystem()
|
||||
)
|
||||
|
||||
#: Subsystem for wrangling plugins.
|
||||
self.plugins: PluginSubsystem = self.register_subsystem(
|
||||
PluginSubsystem()
|
||||
)
|
||||
|
||||
#: Subsystem for wrangling metadata.
|
||||
self.meta: MetadataSubsystem = MetadataSubsystem()
|
||||
|
||||
|
|
@ -132,7 +143,6 @@ class App:
|
|||
#: way to determine if network data should be refreshed/etc.
|
||||
self.fg_state: int = 0
|
||||
|
||||
self._subsystems: list[AppSubsystem] = []
|
||||
self._native_bootstrapping_completed = False
|
||||
self._init_completed = False
|
||||
self._meta_scan_completed = False
|
||||
|
|
@ -144,7 +154,6 @@ class App:
|
|||
self._called_on_initing = False
|
||||
self._called_on_loading = False
|
||||
self._called_on_running = False
|
||||
self._subsystem_registration_ended = False
|
||||
self._pending_apply_app_config = False
|
||||
self._asyncio_loop: asyncio.AbstractEventLoop | None = None
|
||||
self._asyncio_tasks: set[asyncio.Task] = set()
|
||||
|
|
@ -169,22 +178,6 @@ class App:
|
|||
self._subsystem_property_lock = RLock()
|
||||
self._subsystem_property_data: dict[str, AppSubsystem | bool] = {}
|
||||
|
||||
def postinit(self) -> None:
|
||||
"""Called after we've been inited and assigned to ``babase.app``.
|
||||
|
||||
Anything that accesses ``babase.app`` as part of its init process
|
||||
must go here instead of __init__.
|
||||
"""
|
||||
|
||||
# Hack for docs-generation: We can be imported with dummy
|
||||
# modules instead of our actual binary ones, but we don't
|
||||
# function.
|
||||
if os.environ.get('BA_RUNNING_WITH_DUMMY_MODULES') == '1':
|
||||
return
|
||||
|
||||
self.lang = LanguageSubsystem()
|
||||
self.plugins = PluginSubsystem()
|
||||
|
||||
@property
|
||||
def active(self) -> bool:
|
||||
"""Whether the app is currently front and center.
|
||||
|
|
@ -228,7 +221,7 @@ class App:
|
|||
assert self._asyncio_loop is not None
|
||||
return self._asyncio_loop
|
||||
|
||||
def create_async_task(
|
||||
def create_async_task[T](
|
||||
self, coro: Coroutine[Any, Any, T], *, name: str | None = None
|
||||
) -> None:
|
||||
"""Create a fully managed :mod:`asyncio` task.
|
||||
|
|
@ -323,7 +316,7 @@ class App:
|
|||
# Do our one attempt to create the singleton.
|
||||
val = create_call()
|
||||
self._subsystem_property_data[ssname] = (
|
||||
False if val is None else val
|
||||
False if val is None else self.register_subsystem(val)
|
||||
)
|
||||
|
||||
return val
|
||||
|
|
@ -388,10 +381,16 @@ class App:
|
|||
|
||||
# __FEATURESET_APP_SUBSYSTEM_PROPERTIES_END__
|
||||
|
||||
def register_subsystem(self, subsystem: AppSubsystem) -> None:
|
||||
"""Called by the AppSubsystem class. Do not use directly.
|
||||
def register_subsystem[T: AppSubsystem](self, subsystem: T) -> T:
|
||||
"""Register an :class:`~babase.AppSubsystem` instance with the app.
|
||||
|
||||
:meta private:
|
||||
Facilitates the subsystem receiving state callbacks, etc.
|
||||
|
||||
Note that subsystems can only be registered before the app
|
||||
completes its transition to the :attr:`~AppState.RUNNING` state.
|
||||
|
||||
Returns the passed object for convenience in assigning it to an
|
||||
attr/etc.
|
||||
"""
|
||||
|
||||
# We only allow registering new subsystems if we've not yet
|
||||
|
|
@ -403,7 +402,9 @@ class App:
|
|||
raise RuntimeError(
|
||||
'Subsystems can no longer be registered at this point.'
|
||||
)
|
||||
assert not any(s is subsystem for s in self._subsystems)
|
||||
self._subsystems.append(subsystem)
|
||||
return subsystem
|
||||
|
||||
def add_shutdown_task(self, coro: Coroutine[None, None, None]) -> None:
|
||||
"""Add a task to be run on app shutdown.
|
||||
|
|
@ -450,12 +451,12 @@ class App:
|
|||
self.threadpool.submit_no_wait(self._set_intent, intent)
|
||||
|
||||
def push_apply_app_config(self) -> None:
|
||||
"""Internal. Use app.config.apply() to apply app config changes.
|
||||
"""Internal. Use :meth:`babase.AppConfig.apply()`.
|
||||
|
||||
:meta private:
|
||||
"""
|
||||
# To be safe, let's run this by itself in the event loop.
|
||||
# This avoids potential trouble if this gets called mid-draw or
|
||||
# To be safe, let's run this by itself in the event loop. This
|
||||
# avoids potential trouble if this gets called mid-draw or
|
||||
# something like that.
|
||||
self._pending_apply_app_config = True
|
||||
_babase.pushcall(self._apply_app_config, raw=True)
|
||||
|
|
@ -748,7 +749,7 @@ class App:
|
|||
_env.on_app_state_initing()
|
||||
|
||||
self._asyncio_loop = _asyncio.setup_asyncio()
|
||||
self.health = AppHealthSubsystem()
|
||||
self.health = self.register_subsystem(AppHealthSubsystem())
|
||||
|
||||
# __FEATURESET_APP_SUBSYSTEM_CREATE_BEGIN__
|
||||
# This section generated by batools.appmodule; do not edit.
|
||||
|
|
|
|||
14
dist/ba_data/python/babase/_appcomponent.py
vendored
14
dist/ba_data/python/babase/_appcomponent.py
vendored
|
|
@ -3,15 +3,13 @@
|
|||
"""Provides the AppComponent class."""
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING, TypeVar, cast
|
||||
from typing import TYPE_CHECKING, cast
|
||||
|
||||
import _babase
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from typing import Callable, Any
|
||||
|
||||
T = TypeVar('T', bound=type)
|
||||
|
||||
|
||||
class AppComponentSubsystem:
|
||||
"""Subsystem for wrangling AppComponents.
|
||||
|
|
@ -66,7 +64,7 @@ class AppComponentSubsystem:
|
|||
_babase.pushcall(self._run_change_callbacks)
|
||||
self._dirty_base_classes.add(baseclass)
|
||||
|
||||
def getclass(self, baseclass: T) -> T:
|
||||
def getclass[T: type](self, baseclass: T) -> T:
|
||||
"""Given a base-class, return the current implementation class.
|
||||
|
||||
If no custom implementation has been set, the provided
|
||||
|
|
@ -76,9 +74,13 @@ class AppComponentSubsystem:
|
|||
raise RuntimeError('this must be called from the logic thread.')
|
||||
|
||||
del baseclass # Unused.
|
||||
return cast(T, None)
|
||||
|
||||
def register_change_callback(
|
||||
# FIXME - I think our pylint plugin is doing the wrong thing
|
||||
# here and clearing all func generic params when it should just
|
||||
# be clearing their type annotations.
|
||||
return cast(T, None) # pylint: disable=undefined-variable
|
||||
|
||||
def register_change_callback[T: type](
|
||||
self, baseclass: T, callback: Callable[[T], None]
|
||||
) -> None:
|
||||
"""Register a callback to fire on class implementation changes.
|
||||
|
|
|
|||
29
dist/ba_data/python/babase/_appmode.py
vendored
29
dist/ba_data/python/babase/_appmode.py
vendored
|
|
@ -3,10 +3,9 @@
|
|||
"""Provides AppMode functionality."""
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING, final
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from bacommon.app import AppExperience
|
||||
from babase import AppIntent
|
||||
|
||||
|
||||
|
|
@ -18,33 +17,9 @@ class AppMode:
|
|||
app-modes can almost be considered different apps.
|
||||
"""
|
||||
|
||||
@classmethod
|
||||
def get_app_experience(cls) -> AppExperience:
|
||||
"""Return the overall experience provided by this mode."""
|
||||
raise NotImplementedError('AppMode subclasses must override this.')
|
||||
|
||||
@final
|
||||
@classmethod
|
||||
def can_handle_intent(cls, intent: AppIntent) -> bool:
|
||||
"""Return whether this mode can handle the provided intent.
|
||||
|
||||
For this to return True, the app-mode must claim to support the
|
||||
provided intent (via its :meth:`can_handle_intent_impl()`
|
||||
method) *AND* the :class:`~bacommon.app.AppExperience` associated
|
||||
with the app-mode must be supported by the current app and
|
||||
runtime environment.
|
||||
"""
|
||||
# TODO: check AppExperience against current environment.
|
||||
return cls.can_handle_intent_impl(intent)
|
||||
|
||||
@classmethod
|
||||
def can_handle_intent_impl(cls, intent: AppIntent) -> bool:
|
||||
"""Override this to define indent handling for an app-mode.
|
||||
|
||||
Note that :class:`~bacommon.app.AppExperience` does not have to
|
||||
be considered here; that is handled automatically by the
|
||||
:meth:`can_handle_intent()` call.
|
||||
"""
|
||||
"""Override this to define indent handling for an app-mode."""
|
||||
raise NotImplementedError('AppMode subclasses must override this.')
|
||||
|
||||
def handle_intent(self, intent: AppIntent) -> None:
|
||||
|
|
|
|||
31
dist/ba_data/python/babase/_appsubsystem.py
vendored
31
dist/ba_data/python/babase/_appsubsystem.py
vendored
|
|
@ -5,7 +5,6 @@ from __future__ import annotations
|
|||
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
import _babase
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from babase import UIScale
|
||||
|
|
@ -19,15 +18,13 @@ class AppSubsystem:
|
|||
building one out of this base class provides conveniences such as
|
||||
predefined callbacks during app state changes.
|
||||
|
||||
Subsystems must be registered with the app before it completes its
|
||||
transition to the 'running' state.
|
||||
Subsystems should be registered with the app using
|
||||
:meth:`~babase.App.register_subsystem()`.
|
||||
"""
|
||||
|
||||
def __init__(self) -> None:
|
||||
_babase.app.register_subsystem(self)
|
||||
|
||||
def on_app_loading(self) -> None:
|
||||
"""Called when the app reaches the loading state.
|
||||
"""Called when the app reaches the
|
||||
:attr:`~babase.AppState.LOADING` state.
|
||||
|
||||
Note that subsystems created after the app switches to the
|
||||
loading state will not receive this callback. Subsystems created
|
||||
|
|
@ -35,19 +32,29 @@ class AppSubsystem:
|
|||
"""
|
||||
|
||||
def on_app_running(self) -> None:
|
||||
"""Called when app enters :attr:`~AppState.RUNNING` state."""
|
||||
"""Called when the app enters the
|
||||
:attr:`~babase.AppState.RUNNING` state.
|
||||
"""
|
||||
|
||||
def on_app_suspend(self) -> None:
|
||||
"""Called when app enters :attr:`~AppState.SUSPENDED` state."""
|
||||
"""Called when the app enters the
|
||||
:attr:`~babase.AppState.SUSPENDED` state.
|
||||
"""
|
||||
|
||||
def on_app_unsuspend(self) -> None:
|
||||
"""Called when app exits :attr:`~AppState.SUSPENDED` state."""
|
||||
"""Called when the app exits the
|
||||
:attr:`~babase.AppState.SUSPENDED` state.
|
||||
"""
|
||||
|
||||
def on_app_shutdown(self) -> None:
|
||||
"""Called when app enters :attr:`~AppState.SHUTTING_DOWN` state."""
|
||||
"""Called when the app enters the
|
||||
:attr:`~babase.AppState.SHUTTING_DOWN` state.
|
||||
"""
|
||||
|
||||
def on_app_shutdown_complete(self) -> None:
|
||||
"""Called when app enters :attr:`~AppState.SHUTDOWN_COMPLETE` state."""
|
||||
"""Called when the app enters the
|
||||
:attr:`~AppState.SHUTDOWN_COMPLETE` state.
|
||||
"""
|
||||
|
||||
def do_apply_app_config(self) -> None:
|
||||
"""Called when the app config should be applied."""
|
||||
|
|
|
|||
12
dist/ba_data/python/babase/_devconsole.py
vendored
12
dist/ba_data/python/babase/_devconsole.py
vendored
|
|
@ -129,11 +129,13 @@ class DevConsoleSubsystem:
|
|||
|
||||
Access the single shared instance of this class via the
|
||||
:attr:`~babase.App.devconsole` attr on the :class:`~babase.App`
|
||||
class. The dev-console is a simple always-available UI intended for
|
||||
use by developers; not end users. Traditionally it is available by
|
||||
typing a backtick (`) key on a keyboard, but can also be accessed
|
||||
via an on-screen button (see settings/advanced/dev-tools to enable
|
||||
said button).
|
||||
class.
|
||||
|
||||
The dev-console is a simple always-available UI intended for use by
|
||||
developers; not end users. Traditionally it is available by typing a
|
||||
backtick (`) key on a keyboard, but can also be accessed via an
|
||||
on-screen button (see settings/advanced/dev-tools to enable said
|
||||
button).
|
||||
"""
|
||||
|
||||
def __init__(self) -> None:
|
||||
|
|
|
|||
10
dist/ba_data/python/babase/_devconsoletabs.py
vendored
10
dist/ba_data/python/babase/_devconsoletabs.py
vendored
|
|
@ -7,7 +7,7 @@ import math
|
|||
import random
|
||||
import logging
|
||||
from functools import partial
|
||||
from typing import TYPE_CHECKING, override, TypeVar, Generic
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
import _babase
|
||||
|
||||
|
|
@ -19,8 +19,6 @@ if TYPE_CHECKING:
|
|||
from bacommon.loggercontrol import LoggerControlConfig
|
||||
from babase import AppMode
|
||||
|
||||
T = TypeVar('T')
|
||||
|
||||
|
||||
class DevConsoleTabPython(DevConsoleTab):
|
||||
"""The Python dev-console tab."""
|
||||
|
|
@ -56,7 +54,7 @@ class DevConsoleTabAppModes(DevConsoleTab):
|
|||
# Kick off a load if applicable.
|
||||
if self._app_modes is None and not self._app_modes_loading:
|
||||
_babase.app.meta.load_exported_classes(
|
||||
AppMode, self._on_app_modes_loaded
|
||||
'babase.AppMode', AppMode, self._on_app_modes_loaded
|
||||
)
|
||||
|
||||
# Just say 'loading' if we don't have app-modes yet.
|
||||
|
|
@ -66,7 +64,7 @@ class DevConsoleTabAppModes(DevConsoleTab):
|
|||
)
|
||||
return
|
||||
|
||||
bwidth = 260
|
||||
bwidth = 300
|
||||
bpadding = 5
|
||||
|
||||
xoffs = -0.5 * bwidth * len(self._app_modes)
|
||||
|
|
@ -173,7 +171,7 @@ class DevConsoleTabUI(DevConsoleTab):
|
|||
self.request_refresh()
|
||||
|
||||
|
||||
class Table(Generic[T]):
|
||||
class Table[T]:
|
||||
"""Used to show controls for arbitrarily large data in a grid form."""
|
||||
|
||||
def __init__(
|
||||
|
|
|
|||
9
dist/ba_data/python/babase/_emptyappmode.py
vendored
9
dist/ba_data/python/babase/_emptyappmode.py
vendored
|
|
@ -5,7 +5,7 @@ from __future__ import annotations
|
|||
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from bacommon.app import AppExperience
|
||||
# from bacommon.app import AppExperience
|
||||
|
||||
import _babase
|
||||
from babase._appmode import AppMode
|
||||
|
|
@ -24,12 +24,7 @@ class EmptyAppMode(AppMode):
|
|||
|
||||
@override
|
||||
@classmethod
|
||||
def get_app_experience(cls) -> AppExperience:
|
||||
return AppExperience.EMPTY
|
||||
|
||||
@override
|
||||
@classmethod
|
||||
def can_handle_intent_impl(cls, intent: AppIntent) -> bool:
|
||||
def can_handle_intent(cls, intent: AppIntent) -> bool:
|
||||
# We support default and exec intents currently.
|
||||
return isinstance(intent, AppIntentExec | AppIntentDefault)
|
||||
|
||||
|
|
|
|||
6
dist/ba_data/python/babase/_env.py
vendored
6
dist/ba_data/python/babase/_env.py
vendored
|
|
@ -144,6 +144,10 @@ def on_main_thread_start_app() -> None:
|
|||
# situations.
|
||||
__main__.__builtins__.help = _CustomHelper()
|
||||
|
||||
# UPDATE: As of May 2025 I'm no longer seeing the below issue, so
|
||||
# disabling this workaround for now and will remove it soon if no
|
||||
# issues arise.
|
||||
|
||||
# On Windows I'm seeing the following error creating asyncio loops
|
||||
# in background threads with the default proactor setup:
|
||||
|
||||
|
|
@ -155,7 +159,7 @@ def on_main_thread_start_app() -> None:
|
|||
# thread; previously the various asyncio bg thread loops were
|
||||
# working fine (maybe something caused them to default to selector
|
||||
# in that case?..
|
||||
if sys.platform == 'win32':
|
||||
if sys.platform == 'win32' and bool(False):
|
||||
import asyncio
|
||||
|
||||
asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
|
||||
|
|
|
|||
12
dist/ba_data/python/babase/_general.py
vendored
12
dist/ba_data/python/babase/_general.py
vendored
|
|
@ -34,17 +34,15 @@ DisplayTime = NewType('DisplayTime', float)
|
|||
|
||||
|
||||
class Existable(Protocol):
|
||||
"""A Protocol for objects supporting an exists() method."""
|
||||
"""A Protocol for objects supporting an ``exists()`` method."""
|
||||
|
||||
def exists(self) -> bool:
|
||||
"""Whether this object exists."""
|
||||
|
||||
|
||||
ExistableT = TypeVar('ExistableT', bound=Existable)
|
||||
T = TypeVar('T')
|
||||
|
||||
|
||||
def existing(obj: ExistableT | None) -> ExistableT | None:
|
||||
def existing[ExistableT: Existable](
|
||||
obj: ExistableT | None,
|
||||
) -> ExistableT | None:
|
||||
"""Convert invalid references to None for any babase.Existable object.
|
||||
|
||||
To best support type checking, it is important that invalid
|
||||
|
|
@ -62,7 +60,7 @@ def existing(obj: ExistableT | None) -> ExistableT | None:
|
|||
return obj if obj is not None and obj.exists() else None
|
||||
|
||||
|
||||
def getclass(
|
||||
def getclass[T](
|
||||
name: str, subclassof: type[T], check_sdlib_modulename_clash: bool = False
|
||||
) -> type[T]:
|
||||
"""Given a full class name such as ``foo.bar.MyClass``, return the class.
|
||||
|
|
|
|||
164
dist/ba_data/python/babase/_language.py
vendored
164
dist/ba_data/python/babase/_language.py
vendored
|
|
@ -19,15 +19,20 @@ if TYPE_CHECKING:
|
|||
|
||||
|
||||
class LanguageSubsystem(AppSubsystem):
|
||||
"""Language functionality for the app.
|
||||
"""Legacy language functionality for the app.
|
||||
|
||||
Access the single instance of this class at 'babase.app.lang'.
|
||||
Access the single shared instance of this class via the
|
||||
:attr:`~babase.App.lang` attr on the :class:`~babase.App` class.
|
||||
|
||||
.. deprecated:: 1.7.40
|
||||
|
||||
Use :class:`~babase.LocaleSubsystem` for language/locale
|
||||
functionality when possible. This old class remains for
|
||||
compatibility and will be removed eventually.
|
||||
"""
|
||||
|
||||
def __init__(self) -> None:
|
||||
super().__init__()
|
||||
self.default_language: str = self._get_default_language()
|
||||
|
||||
self._language: str | None = None
|
||||
self._language_target: AttrDict | None = None
|
||||
self._language_merged: AttrDict | None = None
|
||||
|
|
@ -59,46 +64,9 @@ class LanguageSubsystem(AppSubsystem):
|
|||
"""
|
||||
if self._language is None:
|
||||
raise RuntimeError('App language is not yet set.')
|
||||
|
||||
return self._language
|
||||
|
||||
@property
|
||||
def available_languages(self) -> list[str]:
|
||||
"""A list of all available languages.
|
||||
|
||||
Note that languages that may be present in game assets but which
|
||||
are not displayable on the running version of the game are not
|
||||
included here.
|
||||
"""
|
||||
langs = set()
|
||||
try:
|
||||
names = os.listdir(
|
||||
os.path.join(
|
||||
_babase.app.env.data_directory,
|
||||
'ba_data',
|
||||
'data',
|
||||
'languages',
|
||||
)
|
||||
)
|
||||
names = [n.replace('.json', '').capitalize() for n in names]
|
||||
|
||||
# FIXME: our simple capitalization fails on multi-word
|
||||
# names; should handle this in a better way...
|
||||
for i, name in enumerate(names):
|
||||
if name == 'Chinesetraditional':
|
||||
names[i] = 'ChineseTraditional'
|
||||
elif name == 'Piratespeak':
|
||||
names[i] = 'PirateSpeak'
|
||||
except Exception:
|
||||
applog.exception('Error building available language list.')
|
||||
names = []
|
||||
|
||||
for name in names:
|
||||
if self._can_display_language(name):
|
||||
langs.add(name)
|
||||
return sorted(
|
||||
name for name in names if self._can_display_language(name)
|
||||
)
|
||||
|
||||
def testlanguage(self, langid: str) -> None:
|
||||
"""Set the app to test an in-progress language.
|
||||
|
||||
|
|
@ -136,21 +104,28 @@ class LanguageSubsystem(AppSubsystem):
|
|||
|
||||
def setlanguage(
|
||||
self,
|
||||
language: str | dict | None,
|
||||
language: str | dict,
|
||||
*,
|
||||
print_change: bool = True,
|
||||
store_to_config: bool = True,
|
||||
ignore_redundant: bool = False,
|
||||
) -> None:
|
||||
"""Set the active app language.
|
||||
|
||||
Pass None to use OS default language.
|
||||
Note that this only applies to the legacy language system and
|
||||
should not be used directly these days.
|
||||
"""
|
||||
|
||||
# pylint: disable=too-many-locals
|
||||
# pylint: disable=too-many-statements
|
||||
# pylint: disable=too-many-branches
|
||||
assert _babase.in_logic_thread()
|
||||
|
||||
cfg = _babase.app.config
|
||||
cur_language = cfg.get('Lang', None)
|
||||
|
||||
if ignore_redundant and language == self._language:
|
||||
return
|
||||
|
||||
with open(
|
||||
os.path.join(
|
||||
_babase.app.env.data_directory,
|
||||
|
|
@ -175,19 +150,19 @@ class LanguageSubsystem(AppSubsystem):
|
|||
|
||||
# Store this in the config if its changing.
|
||||
if language != cur_language and store_to_config:
|
||||
if language is None:
|
||||
if 'Lang' in cfg:
|
||||
del cfg['Lang'] # Clear it out for default.
|
||||
else:
|
||||
cfg['Lang'] = language
|
||||
# if language is None:
|
||||
# if 'Lang' in cfg:
|
||||
# del cfg['Lang'] # Clear it out for default.
|
||||
# else:
|
||||
cfg['Lang'] = language
|
||||
cfg.commit()
|
||||
switched = True
|
||||
else:
|
||||
switched = False
|
||||
|
||||
# None implies default.
|
||||
if language is None:
|
||||
language = self.default_language
|
||||
# if language is None:
|
||||
# language = self.default_language
|
||||
try:
|
||||
if language == 'English':
|
||||
lmodvalues = None
|
||||
|
|
@ -270,15 +245,6 @@ class LanguageSubsystem(AppSubsystem):
|
|||
color=(0, 1, 0),
|
||||
)
|
||||
|
||||
@override
|
||||
def do_apply_app_config(self) -> None:
|
||||
""":meta private:"""
|
||||
assert _babase.in_logic_thread()
|
||||
assert isinstance(_babase.app.config, dict)
|
||||
lang = _babase.app.config.get('Lang', self.default_language)
|
||||
if lang != self._language:
|
||||
self.setlanguage(lang, print_change=False, store_to_config=False)
|
||||
|
||||
def get_resource(
|
||||
self,
|
||||
resource: str,
|
||||
|
|
@ -380,7 +346,7 @@ class LanguageSubsystem(AppSubsystem):
|
|||
raise_exceptions: bool = False,
|
||||
print_errors: bool = False,
|
||||
) -> str:
|
||||
"""Translate a value (or return the value if no translation available)
|
||||
"""Translate a value (or return the value if no translation available).
|
||||
|
||||
.. warning::
|
||||
|
||||
|
|
@ -421,80 +387,6 @@ class LanguageSubsystem(AppSubsystem):
|
|||
raise ValueError('Invalid Input; must be length 1')
|
||||
return 0xE000 <= ord(char) <= 0xF8FF
|
||||
|
||||
def _can_display_language(self, language: str) -> bool:
|
||||
"""Tell whether we can display a particular language.
|
||||
|
||||
On some platforms we don't have unicode rendering yet which
|
||||
limits the languages we can draw.
|
||||
"""
|
||||
|
||||
# We don't yet support full unicode display on windows or linux :-(.
|
||||
if (
|
||||
language
|
||||
in {
|
||||
'Chinese',
|
||||
'ChineseTraditional',
|
||||
'Persian',
|
||||
'Korean',
|
||||
'Arabic',
|
||||
'Hindi',
|
||||
'Vietnamese',
|
||||
'Thai',
|
||||
'Tamil',
|
||||
}
|
||||
and not _babase.supports_unicode_display()
|
||||
):
|
||||
return False
|
||||
return True
|
||||
|
||||
def _get_default_language(self) -> str:
|
||||
languages = {
|
||||
'ar': 'Arabic',
|
||||
'be': 'Belarussian',
|
||||
'zh': 'Chinese',
|
||||
'hr': 'Croatian',
|
||||
'cs': 'Czech',
|
||||
'da': 'Danish',
|
||||
'nl': 'Dutch',
|
||||
'eo': 'Esperanto',
|
||||
'fil': 'Filipino',
|
||||
'fr': 'French',
|
||||
'de': 'German',
|
||||
'el': 'Greek',
|
||||
'hi': 'Hindi',
|
||||
'hu': 'Hungarian',
|
||||
'id': 'Indonesian',
|
||||
'it': 'Italian',
|
||||
'ko': 'Korean',
|
||||
'ms': 'Malay',
|
||||
'fa': 'Persian',
|
||||
'pl': 'Polish',
|
||||
'pt': 'Portuguese',
|
||||
'ro': 'Romanian',
|
||||
'ru': 'Russian',
|
||||
'sr': 'Serbian',
|
||||
'es': 'Spanish',
|
||||
'sk': 'Slovak',
|
||||
'sv': 'Swedish',
|
||||
'ta': 'Tamil',
|
||||
'th': 'Thai',
|
||||
'tr': 'Turkish',
|
||||
'uk': 'Ukrainian',
|
||||
'vec': 'Venetian',
|
||||
'vi': 'Vietnamese',
|
||||
}
|
||||
|
||||
# Special case for Chinese: map specific variations to
|
||||
# traditional. (otherwise will map to 'Chinese' which is
|
||||
# simplified)
|
||||
if self.locale in ('zh_HANT', 'zh_TW'):
|
||||
language = 'ChineseTraditional'
|
||||
else:
|
||||
language = languages.get(self.locale[:2], 'English')
|
||||
if not self._can_display_language(language):
|
||||
language = 'English'
|
||||
return language
|
||||
|
||||
|
||||
class Lstr:
|
||||
"""Used to define strings in a language-independent way.
|
||||
|
|
|
|||
175
dist/ba_data/python/babase/_locale.py
vendored
Normal file
175
dist/ba_data/python/babase/_locale.py
vendored
Normal file
|
|
@ -0,0 +1,175 @@
|
|||
# Released under the MIT License. See LICENSE for details.
|
||||
#
|
||||
"""Locale related functionality."""
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import TYPE_CHECKING, override, assert_never
|
||||
|
||||
from functools import cache
|
||||
|
||||
from bacommon.locale import Locale, LocaleResolved
|
||||
|
||||
import _babase
|
||||
from babase._appsubsystem import AppSubsystem
|
||||
from babase._logging import applog
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from typing import Any, Sequence
|
||||
|
||||
import babase
|
||||
|
||||
|
||||
class LocaleSubsystem(AppSubsystem):
|
||||
"""Locale functionality for the app.
|
||||
|
||||
Access the single shared instance of this class via the
|
||||
:attr:`~babase.App.locale` attr on the :class:`~babase.App` class.
|
||||
"""
|
||||
|
||||
def __init__(self) -> None:
|
||||
super().__init__()
|
||||
self._current_locale: Locale | None = None
|
||||
|
||||
# Calc our default locale based on the locale-tag provided by
|
||||
# the native layer.
|
||||
env = _babase.env()
|
||||
ba_locale = env.get('ba_locale')
|
||||
locale_tag = env.get('locale')
|
||||
if not isinstance(ba_locale, str) or not isinstance(locale_tag, str):
|
||||
applog.warning(
|
||||
'Seem to be running in a dummy env; using en-US locale-tag.'
|
||||
)
|
||||
ba_locale = ''
|
||||
locale_tag = 'en-US'
|
||||
|
||||
#: The default locale based on the current runtime environment
|
||||
#: and app capabilities. This locale will be used unless the user
|
||||
#: explicitly overrides it.
|
||||
self.default_locale: Locale = Locale.ENGLISH
|
||||
|
||||
# If a Locale long-name was provided, try to use that.
|
||||
have_valid_ba_locale = False
|
||||
if ba_locale:
|
||||
try:
|
||||
self.default_locale = Locale.from_long_value(ba_locale)
|
||||
have_valid_ba_locale = True
|
||||
except ValueError:
|
||||
applog.error(
|
||||
'Invalid ba_locale "%s";'
|
||||
' will fall back to using locale tag.',
|
||||
ba_locale,
|
||||
)
|
||||
|
||||
# Otherwise calc Locale from a tag ('en-US', etc.)
|
||||
if not have_valid_ba_locale:
|
||||
self.default_locale = LocaleResolved.from_tag(locale_tag).locale
|
||||
|
||||
# If we can't properly display this default locale, set it to
|
||||
# English instead.
|
||||
if (
|
||||
self.requires_full_unicode_display(self.default_locale.resolved)
|
||||
and not _babase.supports_unicode_display()
|
||||
):
|
||||
self.default_locale = Locale.ENGLISH
|
||||
|
||||
@override
|
||||
def do_apply_app_config(self) -> None:
|
||||
""":meta private:"""
|
||||
assert _babase.in_logic_thread()
|
||||
assert isinstance(_babase.app.config, dict)
|
||||
|
||||
locale = self.default_locale
|
||||
|
||||
# Look for a 'Lang' in app-config to override the default. We
|
||||
# expect this to be a Locale long-value such as
|
||||
# 'ChineseTraditional'.
|
||||
lang = _babase.app.config.get('Lang')
|
||||
if lang is not None:
|
||||
try:
|
||||
locale = Locale.from_long_value(lang)
|
||||
except ValueError:
|
||||
applog.error(
|
||||
'Invalid Lang "%s"; falling back to default.', lang
|
||||
)
|
||||
# Convert the locale to resolved and back again to make sure
|
||||
# we're loading a currently-supported one (for example this will
|
||||
# convert 'Spanish' to 'SpanishLatinAmerica').
|
||||
locale = locale.resolved.locale
|
||||
|
||||
self._current_locale = locale
|
||||
|
||||
_babase.app.lang.setlanguage(
|
||||
locale.long_value,
|
||||
print_change=False,
|
||||
store_to_config=False,
|
||||
ignore_redundant=True,
|
||||
)
|
||||
|
||||
@property
|
||||
def current_locale(self) -> Locale:
|
||||
"""The current locale for the app."""
|
||||
if self._current_locale is None:
|
||||
raise RuntimeError('Locale is not set.')
|
||||
return self._current_locale
|
||||
|
||||
@staticmethod
|
||||
@cache
|
||||
def requires_full_unicode_display(
|
||||
locale: LocaleResolved,
|
||||
) -> bool:
|
||||
"""Does the locale require full unicode support to display?"""
|
||||
# pylint: disable=too-many-boolean-expressions
|
||||
|
||||
cls = LocaleResolved
|
||||
|
||||
# DO need full unicode.
|
||||
if (
|
||||
locale is cls.CHINESE_TRADITIONAL
|
||||
or locale is cls.CHINESE_SIMPLIFIED
|
||||
or locale is cls.ARABIC
|
||||
or locale is cls.HINDI
|
||||
or locale is cls.KOREAN
|
||||
or locale is cls.PERSIAN
|
||||
or locale is cls.TAMIL
|
||||
or locale is cls.THAI
|
||||
or locale is cls.VIETNAMESE
|
||||
):
|
||||
return True
|
||||
|
||||
# Do NOT need full unicode.
|
||||
if (
|
||||
locale is cls.ENGLISH
|
||||
or locale is cls.PORTUGUESE_PORTUGAL
|
||||
or locale is cls.PORTUGUESE_BRAZIL
|
||||
or locale is cls.BELARUSSIAN
|
||||
or locale is cls.CROATIAN
|
||||
or locale is cls.CZECH
|
||||
or locale is cls.DANISH
|
||||
or locale is cls.DUTCH
|
||||
or locale is cls.PIRATE_SPEAK
|
||||
or locale is cls.ESPERANTO
|
||||
or locale is cls.FILIPINO
|
||||
or locale is cls.FRENCH
|
||||
or locale is cls.GERMAN
|
||||
or locale is cls.GIBBERISH
|
||||
or locale is cls.GREEK
|
||||
or locale is cls.HUNGARIAN
|
||||
or locale is cls.INDONESIAN
|
||||
or locale is cls.ITALIAN
|
||||
or locale is cls.MALAY
|
||||
or locale is cls.POLISH
|
||||
or locale is cls.ROMANIAN
|
||||
or locale is cls.RUSSIAN
|
||||
or locale is cls.SERBIAN
|
||||
or locale is cls.SPANISH_LATIN_AMERICA
|
||||
or locale is cls.SPANISH_SPAIN
|
||||
or locale is cls.SLOVAK
|
||||
or locale is cls.SWEDISH
|
||||
or locale is cls.TURKISH
|
||||
or locale is cls.UKRAINIAN
|
||||
or locale is cls.VENETIAN
|
||||
):
|
||||
return False
|
||||
|
||||
# Make sure we're covering all cases.
|
||||
assert_never(locale)
|
||||
14
dist/ba_data/python/babase/_login.py
vendored
14
dist/ba_data/python/babase/_login.py
vendored
|
|
@ -30,13 +30,13 @@ class LoginInfo:
|
|||
class LoginAdapter:
|
||||
"""Allows using implicit login types in an explicit way.
|
||||
|
||||
Some login types such as Google Play Game Services or Game Center are
|
||||
basically always present and often do not provide a way to log out
|
||||
from within a running app, so this adapter exists to use them in a
|
||||
flexible manner by 'attaching' and 'detaching' from an always-present
|
||||
login, allowing for its use alongside other login types. It also
|
||||
provides common functionality for server-side account verification and
|
||||
other handy bits.
|
||||
Some login types such as Google Play Game Services or Game Center
|
||||
are basically always present and often do not provide a way to log
|
||||
out from within a running app, so this adapter exists to use them in
|
||||
a flexible manner by 'attaching to' and 'detaching from' an
|
||||
always-present login, allowing for its use alongside other login
|
||||
types. It also provides common functionality for server-side account
|
||||
verification and other handy bits.
|
||||
"""
|
||||
|
||||
@dataclass
|
||||
|
|
|
|||
33
dist/ba_data/python/babase/_meta.py
vendored
33
dist/ba_data/python/babase/_meta.py
vendored
|
|
@ -10,7 +10,7 @@ import logging
|
|||
from pathlib import Path
|
||||
from threading import Thread
|
||||
from functools import partial
|
||||
from typing import TYPE_CHECKING, TypeVar
|
||||
from typing import TYPE_CHECKING
|
||||
from dataclasses import dataclass, field
|
||||
|
||||
import _babase
|
||||
|
|
@ -29,8 +29,6 @@ EXPORT_CLASS_NAME_SHORTCUTS: dict[str, str] = {
|
|||
'keyboard': 'bauiv1.Keyboard',
|
||||
}
|
||||
|
||||
T = TypeVar('T')
|
||||
|
||||
|
||||
@dataclass
|
||||
class ScanResults:
|
||||
|
|
@ -40,9 +38,15 @@ class ScanResults:
|
|||
incorrect_api_modules: list[str] = field(default_factory=list)
|
||||
announce_errors_occurred: bool = False
|
||||
|
||||
def exports_of_class(self, cls: type) -> list[str]:
|
||||
"""Return exports of a given class."""
|
||||
return self.exports.get(f'{cls.__module__}.{cls.__qualname__}', [])
|
||||
def exports_by_name(self, name: str) -> list[str]:
|
||||
"""Return exports matching a given name."""
|
||||
return self.exports.get(name, [])
|
||||
|
||||
# def exports_of_class(self, cls: type) -> list[str]:
|
||||
# """Return exports of a given class."""
|
||||
|
||||
# print('RETURNING', cls)
|
||||
# return self.exports.get(f'{cls.__module__}.{cls.__qualname__}', [])
|
||||
|
||||
|
||||
class MetadataSubsystem:
|
||||
|
|
@ -102,8 +106,9 @@ class MetadataSubsystem:
|
|||
assert self._scan is not None
|
||||
self._scan.set_extras(self.extra_scan_dirs)
|
||||
|
||||
def load_exported_classes(
|
||||
def load_exported_classes[T](
|
||||
self,
|
||||
exportname: str,
|
||||
cls: type[T],
|
||||
completion_cb: Callable[[list[type[T]]], None],
|
||||
completion_cb_in_bg_thread: bool = False,
|
||||
|
|
@ -121,6 +126,7 @@ class MetadataSubsystem:
|
|||
Thread(
|
||||
target=partial(
|
||||
self._load_exported_classes,
|
||||
exportname,
|
||||
cls,
|
||||
completion_cb,
|
||||
completion_cb_in_bg_thread,
|
||||
|
|
@ -128,8 +134,9 @@ class MetadataSubsystem:
|
|||
daemon=True,
|
||||
).start()
|
||||
|
||||
def _load_exported_classes(
|
||||
def _load_exported_classes[T](
|
||||
self,
|
||||
exportname: str,
|
||||
cls: type[T],
|
||||
completion_cb: Callable[[list[type[T]]], None],
|
||||
completion_cb_in_bg_thread: bool,
|
||||
|
|
@ -138,7 +145,10 @@ class MetadataSubsystem:
|
|||
|
||||
classes: list[type[T]] = []
|
||||
try:
|
||||
classnames = self._wait_for_scan_results().exports_of_class(cls)
|
||||
# classnames = self._wait_for_scan_results().exports_of_class(cls)
|
||||
classnames = self._wait_for_scan_results().exports.get(
|
||||
exportname, []
|
||||
)
|
||||
for classname in classnames:
|
||||
try:
|
||||
classes.append(getclass(classname, cls))
|
||||
|
|
@ -164,8 +174,8 @@ class MetadataSubsystem:
|
|||
' this can cause hitches.'
|
||||
)
|
||||
|
||||
# Now wait a bit for the scan to complete.
|
||||
# Eventually error though if it doesn't.
|
||||
# Now wait a bit for the scan to complete. Eventually error
|
||||
# though if it doesn't.
|
||||
starttime = time.time()
|
||||
while self.scanresults is None:
|
||||
time.sleep(0.05)
|
||||
|
|
@ -173,6 +183,7 @@ class MetadataSubsystem:
|
|||
raise TimeoutError(
|
||||
'timeout waiting for meta scan to complete.'
|
||||
)
|
||||
|
||||
return self.scanresults
|
||||
|
||||
def _run_scan_in_bg(self) -> None:
|
||||
|
|
|
|||
2
dist/ba_data/python/babase/_plugin.py
vendored
2
dist/ba_data/python/babase/_plugin.py
vendored
|
|
@ -74,7 +74,7 @@ class PluginSubsystem(AppSubsystem):
|
|||
|
||||
# Create a plugin-spec for each plugin class we found in the
|
||||
# meta-scan.
|
||||
for class_path in results.exports_of_class(Plugin):
|
||||
for class_path in results.exports_by_name('babase.Plugin'):
|
||||
assert class_path not in self.plugin_specs
|
||||
plugspec = self.plugin_specs[class_path] = PluginSpec(
|
||||
class_path=class_path, loadable=True
|
||||
|
|
|
|||
10
dist/ba_data/python/babase/_workspace.py
vendored
10
dist/ba_data/python/babase/_workspace.py
vendored
|
|
@ -26,8 +26,9 @@ if TYPE_CHECKING:
|
|||
class WorkspaceSubsystem:
|
||||
"""Subsystem for workspace handling in the app.
|
||||
|
||||
Access the single shared instance of this class at
|
||||
`ba.app.workspaces`.
|
||||
Access the single shared instance of this class via the
|
||||
:attr:`~babase.App.workspaces` attr on the :class:`~babase.App`
|
||||
class.
|
||||
"""
|
||||
|
||||
def __init__(self) -> None:
|
||||
|
|
@ -40,7 +41,10 @@ class WorkspaceSubsystem:
|
|||
workspacename: str,
|
||||
on_completed: Callable[[], None],
|
||||
) -> None:
|
||||
"""(internal)"""
|
||||
"""(internal)
|
||||
|
||||
:meta private:
|
||||
"""
|
||||
|
||||
# Do our work in a background thread so we don't destroy
|
||||
# interactivity.
|
||||
|
|
|
|||
3
dist/ba_data/python/babase/modutils.py
vendored
3
dist/ba_data/python/babase/modutils.py
vendored
|
|
@ -47,9 +47,6 @@ def get_human_readable_user_scripts_path() -> str:
|
|||
def _request_storage_permission() -> bool:
|
||||
"""If needed, requests storage permission from the user (& return true)."""
|
||||
from babase._language import Lstr
|
||||
|
||||
# noinspection PyProtectedMember
|
||||
# (PyCharm inspection bug?)
|
||||
from babase._mgen.enums import Permission
|
||||
|
||||
if not _babase.have_permission(Permission.STORAGE):
|
||||
|
|
|
|||
8
dist/ba_data/python/baclassic/__init__.py
vendored
8
dist/ba_data/python/baclassic/__init__.py
vendored
|
|
@ -17,7 +17,7 @@ designed in a more modular way.
|
|||
# (ba*.app.classic being None).
|
||||
import logging
|
||||
|
||||
from efro.util import set_canonical_module_names
|
||||
# from efro.util import set_canonical_module_names
|
||||
|
||||
from baclassic._appmode import ClassicAppMode
|
||||
from baclassic._appsubsystem import ClassicAppSubsystem
|
||||
|
|
@ -28,6 +28,7 @@ from baclassic._chest import (
|
|||
CHEST_APPEARANCE_DISPLAY_INFOS,
|
||||
)
|
||||
from baclassic._displayitem import show_display_item
|
||||
from baclassic._music import MusicPlayer
|
||||
|
||||
__all__ = [
|
||||
'ChestAppearanceDisplayInfo',
|
||||
|
|
@ -38,11 +39,14 @@ __all__ = [
|
|||
'Achievement',
|
||||
'AchievementSubsystem',
|
||||
'show_display_item',
|
||||
'MusicPlayer',
|
||||
]
|
||||
|
||||
# We want stuff here to show up as packagename.Foo instead of
|
||||
# packagename._submodule.Foo.
|
||||
set_canonical_module_names(globals())
|
||||
# UPDATE: Trying without this for now. Seems like this might cause more
|
||||
# harm than good. Can flip it back on if it is missed.
|
||||
# set_canonical_module_names(globals())
|
||||
|
||||
# Sanity check: we want to keep ballistica's dependencies and
|
||||
# bootstrapping order clearly defined; let's check a few particular
|
||||
|
|
|
|||
9
dist/ba_data/python/baclassic/_appmode.py
vendored
9
dist/ba_data/python/baclassic/_appmode.py
vendored
|
|
@ -8,7 +8,7 @@ import logging
|
|||
from functools import partial
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
from bacommon.app import AppExperience
|
||||
# from bacommon.app import AppExperience
|
||||
import bacommon.bs
|
||||
import babase
|
||||
import bauiv1
|
||||
|
|
@ -51,12 +51,7 @@ class ClassicAppMode(babase.AppMode):
|
|||
|
||||
@override
|
||||
@classmethod
|
||||
def get_app_experience(cls) -> AppExperience:
|
||||
return AppExperience.MELEE
|
||||
|
||||
@override
|
||||
@classmethod
|
||||
def can_handle_intent_impl(cls, intent: babase.AppIntent) -> bool:
|
||||
def can_handle_intent(cls, intent: babase.AppIntent) -> bool:
|
||||
# We support default and exec intents currently.
|
||||
return isinstance(
|
||||
intent, babase.AppIntentExec | babase.AppIntentDefault
|
||||
|
|
|
|||
10
dist/ba_data/python/baclassic/_appsubsystem.py
vendored
10
dist/ba_data/python/baclassic/_appsubsystem.py
vendored
|
|
@ -475,7 +475,10 @@ class ClassicAppSubsystem(babase.AppSubsystem):
|
|||
callback: MasterServerCallback | None = None,
|
||||
response_type: MasterServerResponseType = MasterServerResponseType.JSON,
|
||||
) -> None:
|
||||
"""Make a call to the master server via a http GET."""
|
||||
"""Make a call to the master server via a http GET.
|
||||
|
||||
:meta private:
|
||||
"""
|
||||
|
||||
MasterServerV1CallThread(
|
||||
request, 'get', data, callback, response_type
|
||||
|
|
@ -488,7 +491,10 @@ class ClassicAppSubsystem(babase.AppSubsystem):
|
|||
callback: MasterServerCallback | None = None,
|
||||
response_type: MasterServerResponseType = MasterServerResponseType.JSON,
|
||||
) -> None:
|
||||
"""Make a call to the master server via a http POST."""
|
||||
"""Make a call to the master server via a http POST.
|
||||
|
||||
:meta private:
|
||||
"""
|
||||
MasterServerV1CallThread(
|
||||
request, 'post', data, callback, response_type
|
||||
).start()
|
||||
|
|
|
|||
173
dist/ba_data/python/bacommon/app.py
vendored
173
dist/ba_data/python/bacommon/app.py
vendored
|
|
@ -5,16 +5,16 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from enum import Enum
|
||||
from dataclasses import dataclass
|
||||
from typing import TYPE_CHECKING, Annotated
|
||||
|
||||
from efro.dataclassio import ioprepped, IOAttrs
|
||||
|
||||
from bacommon.locale import Locale
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
if TYPE_CHECKING:
|
||||
pass
|
||||
|
||||
# NOTE TO SELF - These are used on various server components, so be sure
|
||||
# to update ALL servers before running any clients that might be using
|
||||
# newly defined values. Alterntely we could set up fallback values but I
|
||||
# don't think that will be necessary and could mask problems.
|
||||
|
||||
|
||||
class AppInterfaceIdiom(Enum):
|
||||
"""A general form-factor or method of experiencing a Ballistica app.
|
||||
|
|
@ -24,76 +24,77 @@ class AppInterfaceIdiom(Enum):
|
|||
"""
|
||||
|
||||
#: Small screen; assumed to have touch as primary input.
|
||||
PHONE = 'phn'
|
||||
PHONE = 'phone'
|
||||
|
||||
#: Medium size screen; assumed to have touch as primary input.
|
||||
TABLET = 'tab'
|
||||
TABLET = 'tablet'
|
||||
|
||||
#: Medium size screen; assumed to have game controller as primary
|
||||
#: input.
|
||||
HANDHELD = 'hnd'
|
||||
#: Screen with medium amount of detail visible; assumed to have game
|
||||
#: controller(s) as primary input. Note that this covers handheld or
|
||||
#: arcade cabinet scenarios in addition to tv-connected consoles.
|
||||
CONSOLE = 'console'
|
||||
|
||||
#: Large screen with high amount of detail visible; assumed to have
|
||||
#: Screen with high amount of detail visible; assumed to have
|
||||
#: keyboard/mouse as primary input.
|
||||
DESKTOP = 'dsk'
|
||||
|
||||
#: Large screen with medium amount of detail visible; assumed to have
|
||||
#: game controller as primary input.
|
||||
TV = 'tv'
|
||||
DESKTOP = 'desktop'
|
||||
|
||||
#: Displayed over or in place of of the real world on a headset;
|
||||
#: assumed to have hand tracking or spacial controllers as primary
|
||||
#: assumed to have hand tracking or spatial controllers as primary
|
||||
#: input.
|
||||
XR_HEADSET = 'xrh'
|
||||
XR_HEADSET = 'xr_headset'
|
||||
|
||||
#: Displayed over or instead of the real world on a screen; assumed
|
||||
#: to have device movement augmented by physical or touchscreen
|
||||
#: controls as primary input.
|
||||
XR_SCREEN = 'xrs'
|
||||
#: Displayed over or instead of the real world on a small screen;
|
||||
#: assumed to have device movement augmented by physical or
|
||||
#: touchscreen controls as primary input.
|
||||
XR_PHONE = 'xr_phone'
|
||||
|
||||
#: Displayed over or instead of the real world on a medium size
|
||||
#: screen; assumed to have device movement augmented by physical or
|
||||
#: touchscreen controls as primary input.
|
||||
XR_TABLET = 'xr_tablet'
|
||||
|
||||
#: The app has no interface (generally is acting as a server).
|
||||
HEADLESS = 'headless'
|
||||
|
||||
|
||||
class AppExperience(Enum):
|
||||
"""A particular experience provided by a Ballistica app.
|
||||
# UPDATE: Don't think this will be necessary. Will keep it around for a
|
||||
# moment in case I change my mind. Current plan is to just have AppModes
|
||||
# check for compatible AppInterfaceIdioms or whatever else as part of
|
||||
# their can_handle_intent() call.
|
||||
|
||||
This is one metric used to isolate different playerbases from each
|
||||
other where there might be no technical barriers doing so. For
|
||||
example, a casual one-hand-playable phone game and an augmented
|
||||
reality tabletop game may both use the same scene-versions and
|
||||
networking-protocols and whatnot, but it would make no sense to
|
||||
allow players of one to join servers of the other. AppExperience can
|
||||
be used to keep these player bases separate.
|
||||
# class AppExperience(Enum):
|
||||
# """A type of experience provided by a Ballistica app.
|
||||
|
||||
Generally a single Ballistica app targets a single AppExperience.
|
||||
This is not a technical requirement, however. A single app may
|
||||
support multiple experiences, or there may be multiple apps
|
||||
targeting one experience. Cloud components such as leagues are
|
||||
generally associated with an AppExperience so that they are only
|
||||
visible to client apps designed for that play style, and the same is
|
||||
true for games joinable over the local network, bluetooth, etc.
|
||||
"""
|
||||
# This metric is used to ensure that an :class:`~babase.AppMode` can
|
||||
# be properly presented by a running app. Requirements for supporting
|
||||
# an experience can include things like running in a particular
|
||||
# :class:`AppInterfaceIdiom` or having particular features or input
|
||||
# device(s) present.
|
||||
# """
|
||||
|
||||
#: An experience that is supported everywhere. Used for the default
|
||||
#: empty AppMode when starting the app, etc.
|
||||
EMPTY = 'empt'
|
||||
# #: A special experience that is supported everywhere. Used for the
|
||||
# #: default empty AppMode when starting the app, etc.
|
||||
# EMPTY = 'empty'
|
||||
|
||||
#: The traditional BombSquad experience - multiple players using
|
||||
#: game controllers (or touch screen equivalents) in a single arena
|
||||
#: small enough for all action to be viewed on a single screen.
|
||||
MELEE = 'mlee'
|
||||
# #: The traditional BombSquad experience - multiple players using
|
||||
# #: game controllers (or touch screen equivalents) in a single arena
|
||||
# #: small enough for all action to be viewed on a single screen.
|
||||
# MELEE = 'melee'
|
||||
|
||||
#: The traditional BombSquad Remote experience; buttons on a
|
||||
#: touch-screen allowing a mobile device to be used as a game
|
||||
#: controller.
|
||||
REMOTE = 'rmt'
|
||||
# #: The traditional BombSquad Remote experience; buttons on a
|
||||
# #: touch-screen allowing a mobile device to be used as a game
|
||||
# #: controller.
|
||||
# REMOTE = 'remote'
|
||||
|
||||
|
||||
class AppArchitecture(Enum):
|
||||
"""Processor architecture an app can be running on."""
|
||||
|
||||
UNKNOWN = 'unknown'
|
||||
ARM = 'arm'
|
||||
ARM64 = 'arm64'
|
||||
X86 = 'x86'
|
||||
X86_64 = 'x64'
|
||||
X86_64 = 'x86_64'
|
||||
|
||||
|
||||
class AppPlatform(Enum):
|
||||
|
|
@ -105,10 +106,11 @@ class AppPlatform(Enum):
|
|||
build.
|
||||
"""
|
||||
|
||||
MAC = 'mac'
|
||||
WINDOWS = 'win'
|
||||
LINUX = 'lin'
|
||||
ANDROID = 'andr'
|
||||
UNKNOWN = 'unknown'
|
||||
MACOS = 'macos'
|
||||
WINDOWS = 'windows'
|
||||
LINUX = 'linux'
|
||||
ANDROID = 'android'
|
||||
IOS = 'ios'
|
||||
TVOS = 'tvos'
|
||||
|
||||
|
|
@ -123,57 +125,22 @@ class AppVariant(Enum):
|
|||
"""
|
||||
|
||||
#: Default builds.
|
||||
GENERIC = 'gen'
|
||||
GENERIC = 'generic'
|
||||
|
||||
#: Builds intended for public testing (may have some extra checks
|
||||
#: or logging enabled).
|
||||
TEST = 'tst'
|
||||
#: Particular builds intended for public testing (may have some extra
|
||||
#: checks or logging enabled).
|
||||
TEST_BUILD = 'test_build'
|
||||
|
||||
# Various stores.
|
||||
AMAZON_APPSTORE = 'amzn'
|
||||
GOOGLE_PLAY = 'gpl'
|
||||
APPLE_APP_STORE = 'appl'
|
||||
WINDOWS_STORE = 'wins'
|
||||
STEAM = 'stm'
|
||||
AMAZON_APPSTORE = 'amazon_appstore'
|
||||
GOOGLE_PLAY = 'google_play'
|
||||
APPLE_APP_STORE = 'apple_app_store'
|
||||
WINDOWS_STORE = 'windows_store'
|
||||
STEAM = 'steam'
|
||||
META = 'meta'
|
||||
EPIC_GAMES_STORE = 'epic'
|
||||
EPIC_GAMES_STORE = 'epic_games_store'
|
||||
|
||||
# Other.
|
||||
ARCADE = 'arcd'
|
||||
ARCADE = 'arcade'
|
||||
DEMO = 'demo'
|
||||
|
||||
|
||||
class AppName(Enum):
|
||||
"""A predefined Ballistica app name.
|
||||
|
||||
This encompasses official or well-known apps. Other app projects
|
||||
should set this to CUSTOM and provide a 'name_custom' value.
|
||||
"""
|
||||
|
||||
BOMBSQUAD = 'bs'
|
||||
CUSTOM = 'c'
|
||||
|
||||
|
||||
@ioprepped
|
||||
@dataclass
|
||||
class AppInstanceInfo:
|
||||
"""General info about an individual running ballistica app."""
|
||||
|
||||
name: Annotated[str, IOAttrs('name')]
|
||||
name_custom: Annotated[
|
||||
str | None, IOAttrs('namc', soft_default=None, store_default=False)
|
||||
]
|
||||
|
||||
engine_version: Annotated[str, IOAttrs('evrs')]
|
||||
engine_build: Annotated[int, IOAttrs('ebld')]
|
||||
|
||||
platform: Annotated[AppPlatform, IOAttrs('plat')]
|
||||
variant: Annotated[AppVariant, IOAttrs('vrnt')]
|
||||
architecture: Annotated[AppArchitecture, IOAttrs('arch')]
|
||||
os_version: Annotated[str | None, IOAttrs('osvr')]
|
||||
|
||||
interface_idiom: Annotated[AppInterfaceIdiom, IOAttrs('intf')]
|
||||
locale: Annotated[Locale, IOAttrs('loc')]
|
||||
|
||||
#: OS-specific string describing the device running the app.
|
||||
device: Annotated[str | None, IOAttrs('devc')]
|
||||
CARDBOARD = 'cardboard'
|
||||
|
|
|
|||
720
dist/ba_data/python/bacommon/locale.py
vendored
720
dist/ba_data/python/bacommon/locale.py
vendored
|
|
@ -4,20 +4,726 @@
|
|||
|
||||
from __future__ import annotations
|
||||
|
||||
import logging
|
||||
from enum import Enum
|
||||
from typing import TYPE_CHECKING
|
||||
from functools import cached_property, lru_cache
|
||||
from typing import TYPE_CHECKING, assert_never, assert_type
|
||||
|
||||
if TYPE_CHECKING:
|
||||
pass
|
||||
|
||||
|
||||
class Locale(Enum):
|
||||
"""A distinct combination of language and possibly country/etc.
|
||||
"""A distinct grouping of language, cultural norms, etc.
|
||||
|
||||
Note that some locales here may be superseded by other more specific
|
||||
ones (for instance PORTUGUESE -> PORTUGUESE_BRAZIL), but the
|
||||
originals must continue to exist here since they may remain in use
|
||||
in the wild.
|
||||
This list of locales is considered 'sacred' - we assume any values
|
||||
(and associated long values) added here remain in use out in the
|
||||
wild indefinitely. If a locale value is superseded by a newer or
|
||||
more specific one, the new value should be added and both new and
|
||||
old should map to the same LocaleResolved value.
|
||||
"""
|
||||
|
||||
ENGLISH = 'en'
|
||||
# Locale values are not iso codes or anything specific; just
|
||||
# abbreviated English strings intended to be recognizable. In cases
|
||||
# where space is unimportant or humans might be writing these, go
|
||||
# with long-values which .
|
||||
|
||||
ENGLISH = 'eng'
|
||||
CHINESE = 'chn' # Obsolete
|
||||
CHINESE_TRADITIONAL = 'chn_tr'
|
||||
CHINESE_SIMPLIFIED = 'chn_sim'
|
||||
PORTUGUESE = 'prtg' # Obsolete
|
||||
PORTUGUESE_PORTUGAL = 'prtg_pr'
|
||||
PORTUGUESE_BRAZIL = 'prtg_brz'
|
||||
ARABIC = 'arabc'
|
||||
BELARUSSIAN = 'blrs'
|
||||
CROATIAN = 'croat'
|
||||
CZECH = 'czch'
|
||||
DANISH = 'dnsh'
|
||||
DUTCH = 'dtch'
|
||||
PIRATE_SPEAK = 'pirate'
|
||||
ESPERANTO = 'esprnto'
|
||||
FILIPINO = 'filp'
|
||||
FRENCH = 'frnch'
|
||||
GERMAN = 'grmn'
|
||||
GIBBERISH = 'gibber'
|
||||
GREEK = 'greek'
|
||||
HINDI = 'hndi'
|
||||
HUNGARIAN = 'hngr'
|
||||
INDONESIAN = 'indnsn'
|
||||
ITALIAN = 'italn'
|
||||
KOREAN = 'kor'
|
||||
MALAY = 'mlay'
|
||||
PERSIAN = 'pers'
|
||||
POLISH = 'pol'
|
||||
ROMANIAN = 'rom'
|
||||
RUSSIAN = 'rusn'
|
||||
SERBIAN = 'srbn'
|
||||
SPANISH = 'spn' # Obsolete
|
||||
SPANISH_LATIN_AMERICA = 'spn_lat'
|
||||
SPANISH_SPAIN = 'spn_spn'
|
||||
SLOVAK = 'slvk'
|
||||
SWEDISH = 'swed'
|
||||
TAMIL = 'taml'
|
||||
THAI = 'thai'
|
||||
TURKISH = 'turk'
|
||||
UKRAINIAN = 'ukrn'
|
||||
VENETIAN = 'venetn'
|
||||
VIETNAMESE = 'viet'
|
||||
|
||||
# Note: We use if-statement chains here so we can use assert_never()
|
||||
# to ensure we cover all existing values. But we cache lookups so
|
||||
# that we only have to go through those long if-statement chains
|
||||
# once per enum value.
|
||||
|
||||
@cached_property
|
||||
def long_value(self) -> str:
|
||||
"""A longer more human readable alternative to value.
|
||||
|
||||
Like the regular enum values, these values will never change and
|
||||
can be used for persistent storage/etc.
|
||||
"""
|
||||
# pylint: disable=too-many-branches
|
||||
# pylint: disable=too-many-return-statements
|
||||
|
||||
cls = type(self)
|
||||
|
||||
if self is cls.ENGLISH:
|
||||
return 'English'
|
||||
if self is cls.CHINESE:
|
||||
return 'Chinese'
|
||||
if self is cls.CHINESE_TRADITIONAL:
|
||||
return 'ChineseTraditional'
|
||||
if self is cls.CHINESE_SIMPLIFIED:
|
||||
return 'ChineseSimplified'
|
||||
if self is cls.PORTUGUESE:
|
||||
return 'Portuguese'
|
||||
if self is cls.PORTUGUESE_PORTUGAL:
|
||||
return 'PortuguesePortugal'
|
||||
if self is cls.PORTUGUESE_BRAZIL:
|
||||
return 'PortugueseBrazil'
|
||||
if self is cls.ARABIC:
|
||||
return 'Arabic'
|
||||
if self is cls.BELARUSSIAN:
|
||||
return 'Belarussian'
|
||||
if self is cls.CROATIAN:
|
||||
return 'Croatian'
|
||||
if self is cls.CZECH:
|
||||
return 'Czech'
|
||||
if self is cls.DANISH:
|
||||
return 'Danish'
|
||||
if self is cls.DUTCH:
|
||||
return 'Dutch'
|
||||
if self is cls.PIRATE_SPEAK:
|
||||
return 'PirateSpeak'
|
||||
if self is cls.ESPERANTO:
|
||||
return 'Esperanto'
|
||||
if self is cls.FILIPINO:
|
||||
return 'Filipino'
|
||||
if self is cls.FRENCH:
|
||||
return 'French'
|
||||
if self is cls.GERMAN:
|
||||
return 'German'
|
||||
if self is cls.GIBBERISH:
|
||||
return 'Gibberish'
|
||||
if self is cls.GREEK:
|
||||
return 'Greek'
|
||||
if self is cls.HINDI:
|
||||
return 'Hindi'
|
||||
if self is cls.HUNGARIAN:
|
||||
return 'Hungarian'
|
||||
if self is cls.INDONESIAN:
|
||||
return 'Indonesian'
|
||||
if self is cls.ITALIAN:
|
||||
return 'Italian'
|
||||
if self is cls.KOREAN:
|
||||
return 'Korean'
|
||||
if self is cls.MALAY:
|
||||
return 'Malay'
|
||||
if self is cls.PERSIAN:
|
||||
return 'Persian'
|
||||
if self is cls.POLISH:
|
||||
return 'Polish'
|
||||
if self is cls.ROMANIAN:
|
||||
return 'Romanian'
|
||||
if self is cls.RUSSIAN:
|
||||
return 'Russian'
|
||||
if self is cls.SERBIAN:
|
||||
return 'Serbian'
|
||||
if self is cls.SPANISH:
|
||||
return 'Spanish'
|
||||
if self is cls.SPANISH_LATIN_AMERICA:
|
||||
return 'SpanishLatinAmerica'
|
||||
if self is cls.SPANISH_SPAIN:
|
||||
return 'SpanishSpain'
|
||||
if self is cls.SLOVAK:
|
||||
return 'Slovak'
|
||||
if self is cls.SWEDISH:
|
||||
return 'Swedish'
|
||||
if self is cls.TAMIL:
|
||||
return 'Tamil'
|
||||
if self is cls.THAI:
|
||||
return 'Thai'
|
||||
if self is cls.TURKISH:
|
||||
return 'Turkish'
|
||||
if self is cls.UKRAINIAN:
|
||||
return 'Ukrainian'
|
||||
if self is cls.VENETIAN:
|
||||
return 'Venetian'
|
||||
if self is cls.VIETNAMESE:
|
||||
return 'Vietnamese'
|
||||
|
||||
# Make sure we've covered all cases.
|
||||
assert_never(self)
|
||||
|
||||
@classmethod
|
||||
def from_long_value(cls, value: str) -> Locale:
|
||||
"""Given a long value, return a Locale."""
|
||||
|
||||
# Build a map of long-values to locales on demand.
|
||||
storekey = '_from_long_value'
|
||||
fromvals: dict[str, Locale] | None = getattr(cls, storekey, None)
|
||||
if fromvals is None:
|
||||
fromvals = {val.long_value: val for val in cls}
|
||||
setattr(cls, storekey, fromvals)
|
||||
|
||||
try:
|
||||
return fromvals[value]
|
||||
except KeyError as exc:
|
||||
raise ValueError(f'Invalid long value "{value}"') from exc
|
||||
|
||||
@cached_property
|
||||
def resolved(self) -> LocaleResolved:
|
||||
"""Return the associated resolved locale."""
|
||||
# pylint: disable=too-many-return-statements
|
||||
# pylint: disable=too-many-branches
|
||||
|
||||
cls = type(self)
|
||||
R = LocaleResolved
|
||||
|
||||
if self is cls.ENGLISH:
|
||||
return R.ENGLISH
|
||||
if self is cls.CHINESE_SIMPLIFIED or self is cls.CHINESE:
|
||||
return R.CHINESE_SIMPLIFIED
|
||||
if self is cls.CHINESE_TRADITIONAL:
|
||||
return R.CHINESE_TRADITIONAL
|
||||
if self is cls.PORTUGUESE_BRAZIL or self is cls.PORTUGUESE:
|
||||
return R.PORTUGUESE_BRAZIL
|
||||
if self is cls.PORTUGUESE_PORTUGAL:
|
||||
return R.PORTUGUESE_PORTUGAL
|
||||
if self is cls.SPANISH_LATIN_AMERICA or self is cls.SPANISH:
|
||||
return R.SPANISH_LATIN_AMERICA
|
||||
if self is cls.SPANISH_SPAIN:
|
||||
return R.SPANISH_SPAIN
|
||||
if self is cls.ARABIC:
|
||||
return R.ARABIC
|
||||
if self is cls.BELARUSSIAN:
|
||||
return R.BELARUSSIAN
|
||||
if self is cls.CROATIAN:
|
||||
return R.CROATIAN
|
||||
if self is cls.CZECH:
|
||||
return R.CZECH
|
||||
if self is cls.DANISH:
|
||||
return R.DANISH
|
||||
if self is cls.DUTCH:
|
||||
return R.DUTCH
|
||||
if self is cls.PIRATE_SPEAK:
|
||||
return R.PIRATE_SPEAK
|
||||
if self is cls.ESPERANTO:
|
||||
return R.ESPERANTO
|
||||
if self is cls.FILIPINO:
|
||||
return R.FILIPINO
|
||||
if self is cls.FRENCH:
|
||||
return R.FRENCH
|
||||
if self is cls.GERMAN:
|
||||
return R.GERMAN
|
||||
if self is cls.GIBBERISH:
|
||||
return R.GIBBERISH
|
||||
if self is cls.GREEK:
|
||||
return R.GREEK
|
||||
if self is cls.HINDI:
|
||||
return R.HINDI
|
||||
if self is cls.HUNGARIAN:
|
||||
return R.HUNGARIAN
|
||||
if self is cls.INDONESIAN:
|
||||
return R.INDONESIAN
|
||||
if self is cls.ITALIAN:
|
||||
return R.ITALIAN
|
||||
if self is cls.KOREAN:
|
||||
return R.KOREAN
|
||||
if self is cls.MALAY:
|
||||
return R.MALAY
|
||||
if self is cls.PERSIAN:
|
||||
return R.PERSIAN
|
||||
if self is cls.POLISH:
|
||||
return R.POLISH
|
||||
if self is cls.ROMANIAN:
|
||||
return R.ROMANIAN
|
||||
if self is cls.RUSSIAN:
|
||||
return R.RUSSIAN
|
||||
if self is cls.SERBIAN:
|
||||
return R.SERBIAN
|
||||
if self is cls.SLOVAK:
|
||||
return R.SLOVAK
|
||||
if self is cls.SWEDISH:
|
||||
return R.SWEDISH
|
||||
if self is cls.TAMIL:
|
||||
return R.TAMIL
|
||||
if self is cls.THAI:
|
||||
return R.THAI
|
||||
if self is cls.TURKISH:
|
||||
return R.TURKISH
|
||||
if self is cls.UKRAINIAN:
|
||||
return R.UKRAINIAN
|
||||
if self is cls.VENETIAN:
|
||||
return R.VENETIAN
|
||||
if self is cls.VIETNAMESE:
|
||||
return R.VIETNAMESE
|
||||
|
||||
# Make sure we're covering all cases.
|
||||
assert_never(self)
|
||||
|
||||
|
||||
class LocaleResolved(Enum):
|
||||
"""A resolved :class:`Locale` for use in logic.
|
||||
|
||||
These values should never be stored or transmitted and should always
|
||||
come from resolving a :class:`Locale` which *can* be
|
||||
stored/transmitted. This gives us the freedom to revise this list as
|
||||
needed to keep our actual list of implemented resolved-locales as
|
||||
trim as possible.
|
||||
"""
|
||||
|
||||
ENGLISH = 'eng'
|
||||
CHINESE_TRADITIONAL = 'chn_tr'
|
||||
CHINESE_SIMPLIFIED = 'chn_sim'
|
||||
PORTUGUESE_PORTUGAL = 'prtg_pr'
|
||||
PORTUGUESE_BRAZIL = 'prtg_brz'
|
||||
ARABIC = 'arabc'
|
||||
BELARUSSIAN = 'blrs'
|
||||
CROATIAN = 'croat'
|
||||
CZECH = 'czch'
|
||||
DANISH = 'dnsh'
|
||||
DUTCH = 'dtch'
|
||||
PIRATE_SPEAK = 'pirate'
|
||||
ESPERANTO = 'esprnto'
|
||||
FILIPINO = 'filp'
|
||||
FRENCH = 'frnch'
|
||||
GERMAN = 'grmn'
|
||||
GIBBERISH = 'gibber'
|
||||
GREEK = 'greek'
|
||||
HINDI = 'hndi'
|
||||
HUNGARIAN = 'hngr'
|
||||
INDONESIAN = 'indnsn'
|
||||
ITALIAN = 'italn'
|
||||
KOREAN = 'kor'
|
||||
MALAY = 'mlay'
|
||||
PERSIAN = 'pers'
|
||||
POLISH = 'pol'
|
||||
ROMANIAN = 'rom'
|
||||
RUSSIAN = 'rusn'
|
||||
SERBIAN = 'srbn'
|
||||
SPANISH_LATIN_AMERICA = 'spn_lat'
|
||||
SPANISH_SPAIN = 'spn_spn'
|
||||
SLOVAK = 'slvk'
|
||||
SWEDISH = 'swed'
|
||||
TAMIL = 'taml'
|
||||
THAI = 'thai'
|
||||
TURKISH = 'turk'
|
||||
UKRAINIAN = 'ukrn'
|
||||
VENETIAN = 'venetn'
|
||||
VIETNAMESE = 'viet'
|
||||
|
||||
# Note: We use if-statement chains here so we can use assert_never()
|
||||
# to ensure we cover all existing values. But we cache lookups so
|
||||
# that we only have to go through those long if-statement chains
|
||||
# once per enum value.
|
||||
|
||||
@cached_property
|
||||
def locale(self) -> Locale:
|
||||
"""Return a locale that resolves to this resolved locale.
|
||||
|
||||
In some cases, such as when presenting locale options to the
|
||||
user, it makes sense to iterate over resolved locale values, as
|
||||
regular locales may include obsolete or redundant values. When
|
||||
storing locale values to disk or transmitting them, however, it
|
||||
is important to use plain locales. This method can be used to
|
||||
get back to a plain locale from a resolved one.
|
||||
"""
|
||||
# pylint: disable=too-many-return-statements
|
||||
# pylint: disable=too-many-branches
|
||||
|
||||
cls = type(self)
|
||||
|
||||
if self is cls.ENGLISH:
|
||||
return Locale.ENGLISH
|
||||
if self is cls.CHINESE_TRADITIONAL:
|
||||
return Locale.CHINESE_TRADITIONAL
|
||||
if self is cls.CHINESE_SIMPLIFIED:
|
||||
return Locale.CHINESE_SIMPLIFIED
|
||||
if self is cls.PORTUGUESE_PORTUGAL:
|
||||
return Locale.PORTUGUESE_PORTUGAL
|
||||
if self is cls.PORTUGUESE_BRAZIL:
|
||||
return Locale.PORTUGUESE_BRAZIL
|
||||
if self is cls.ARABIC:
|
||||
return Locale.ARABIC
|
||||
if self is cls.BELARUSSIAN:
|
||||
return Locale.BELARUSSIAN
|
||||
if self is cls.CROATIAN:
|
||||
return Locale.CROATIAN
|
||||
if self is cls.CZECH:
|
||||
return Locale.CZECH
|
||||
if self is cls.DANISH:
|
||||
return Locale.DANISH
|
||||
if self is cls.DUTCH:
|
||||
return Locale.DUTCH
|
||||
if self is cls.PIRATE_SPEAK:
|
||||
return Locale.PIRATE_SPEAK
|
||||
if self is cls.ESPERANTO:
|
||||
return Locale.ESPERANTO
|
||||
if self is cls.FILIPINO:
|
||||
return Locale.FILIPINO
|
||||
if self is cls.FRENCH:
|
||||
return Locale.FRENCH
|
||||
if self is cls.GERMAN:
|
||||
return Locale.GERMAN
|
||||
if self is cls.GIBBERISH:
|
||||
return Locale.GIBBERISH
|
||||
if self is cls.GREEK:
|
||||
return Locale.GREEK
|
||||
if self is cls.HINDI:
|
||||
return Locale.HINDI
|
||||
if self is cls.HUNGARIAN:
|
||||
return Locale.HUNGARIAN
|
||||
if self is cls.INDONESIAN:
|
||||
return Locale.INDONESIAN
|
||||
if self is cls.ITALIAN:
|
||||
return Locale.ITALIAN
|
||||
if self is cls.KOREAN:
|
||||
return Locale.KOREAN
|
||||
if self is cls.MALAY:
|
||||
return Locale.MALAY
|
||||
if self is cls.PERSIAN:
|
||||
return Locale.PERSIAN
|
||||
if self is cls.POLISH:
|
||||
return Locale.POLISH
|
||||
if self is cls.ROMANIAN:
|
||||
return Locale.ROMANIAN
|
||||
if self is cls.RUSSIAN:
|
||||
return Locale.RUSSIAN
|
||||
if self is cls.SERBIAN:
|
||||
return Locale.SERBIAN
|
||||
if self is cls.SPANISH_LATIN_AMERICA:
|
||||
return Locale.SPANISH_LATIN_AMERICA
|
||||
if self is cls.SPANISH_SPAIN:
|
||||
return Locale.SPANISH_SPAIN
|
||||
if self is cls.SLOVAK:
|
||||
return Locale.SLOVAK
|
||||
if self is cls.SWEDISH:
|
||||
return Locale.SWEDISH
|
||||
if self is cls.TAMIL:
|
||||
return Locale.TAMIL
|
||||
if self is cls.THAI:
|
||||
return Locale.THAI
|
||||
if self is cls.TURKISH:
|
||||
return Locale.TURKISH
|
||||
if self is cls.UKRAINIAN:
|
||||
return Locale.UKRAINIAN
|
||||
if self is cls.VENETIAN:
|
||||
return Locale.VENETIAN
|
||||
if self is cls.VIETNAMESE:
|
||||
return Locale.VIETNAMESE
|
||||
|
||||
# Make sure we're covering all cases.
|
||||
assert_never(self)
|
||||
|
||||
@cached_property
|
||||
def tag(self) -> str:
|
||||
"""An IETF BCP 47 tag for this locale.
|
||||
|
||||
This is often simply a language code ('en') but may in some
|
||||
cases include the country ('pt-BR') or script ('zh-Hans').
|
||||
Locales which are not "real" will include an 'x' in the middle
|
||||
('en-x-pirate').
|
||||
"""
|
||||
# pylint: disable=too-many-branches
|
||||
# pylint: disable=too-many-statements
|
||||
cls = type(self)
|
||||
|
||||
val: str | None = None
|
||||
|
||||
if self is cls.ENGLISH:
|
||||
val = 'en'
|
||||
elif self is cls.CHINESE_TRADITIONAL:
|
||||
val = 'zh-Hant'
|
||||
elif self is cls.CHINESE_SIMPLIFIED:
|
||||
val = 'zh-Hans'
|
||||
elif self is cls.PORTUGUESE_PORTUGAL:
|
||||
val = 'pt-PT'
|
||||
elif self is cls.PORTUGUESE_BRAZIL:
|
||||
val = 'pt-BR'
|
||||
elif self is cls.ARABIC:
|
||||
val = 'ar'
|
||||
elif self is cls.BELARUSSIAN:
|
||||
val = 'be'
|
||||
elif self is cls.CROATIAN:
|
||||
val = 'hr'
|
||||
elif self is cls.CZECH:
|
||||
val = 'cs'
|
||||
elif self is cls.DANISH:
|
||||
val = 'da'
|
||||
elif self is cls.DUTCH:
|
||||
val = 'nl'
|
||||
elif self is cls.PIRATE_SPEAK:
|
||||
# 'x' in BCP 47 denotes private-use values.
|
||||
val = 'en-x-pirate'
|
||||
elif self is cls.ESPERANTO:
|
||||
val = 'eo'
|
||||
elif self is cls.FILIPINO:
|
||||
val = 'fil'
|
||||
elif self is cls.FRENCH:
|
||||
val = 'fr'
|
||||
elif self is cls.GERMAN:
|
||||
val = 'de'
|
||||
elif self is cls.GIBBERISH:
|
||||
# 'x' in BCP 47 denotes private-use values.
|
||||
val = 'en-x-gibberish'
|
||||
elif self is cls.GREEK:
|
||||
val = 'el'
|
||||
elif self is cls.HINDI:
|
||||
val = 'hi'
|
||||
elif self is cls.HUNGARIAN:
|
||||
val = 'hu'
|
||||
elif self is cls.INDONESIAN:
|
||||
val = 'id'
|
||||
elif self is cls.ITALIAN:
|
||||
val = 'it'
|
||||
elif self is cls.KOREAN:
|
||||
val = 'ko'
|
||||
elif self is cls.MALAY:
|
||||
val = 'ms'
|
||||
elif self is cls.PERSIAN:
|
||||
val = 'fa'
|
||||
elif self is cls.POLISH:
|
||||
val = 'pl'
|
||||
elif self is cls.ROMANIAN:
|
||||
val = 'ro'
|
||||
elif self is cls.RUSSIAN:
|
||||
val = 'ru'
|
||||
elif self is cls.SERBIAN:
|
||||
val = 'sr'
|
||||
elif self is cls.SPANISH_LATIN_AMERICA:
|
||||
val = 'es-419'
|
||||
elif self is cls.SPANISH_SPAIN:
|
||||
val = 'es-ES'
|
||||
elif self is cls.SLOVAK:
|
||||
val = 'sk'
|
||||
elif self is cls.SWEDISH:
|
||||
val = 'sv'
|
||||
elif self is cls.TAMIL:
|
||||
val = 'ta'
|
||||
elif self is cls.THAI:
|
||||
val = 'th'
|
||||
elif self is cls.TURKISH:
|
||||
val = 'tr'
|
||||
elif self is cls.UKRAINIAN:
|
||||
val = 'uk'
|
||||
elif self is cls.VENETIAN:
|
||||
val = 'vec'
|
||||
elif self is cls.VIETNAMESE:
|
||||
val = 'vi'
|
||||
else:
|
||||
# Make sure we cover all cases.
|
||||
assert_never(self)
|
||||
|
||||
assert_type(val, str)
|
||||
|
||||
# Sanity check: the tag we return should lead back to us if we
|
||||
# use it to get a Locale and then resolve that Locale. Make some
|
||||
# noise if not so we can fix it.
|
||||
lrcheck = LocaleResolved.from_tag(val)
|
||||
if lrcheck is not self:
|
||||
logging.warning(
|
||||
'LocaleResolved.from_tag().resolved for "%s" yielded %s;'
|
||||
' expected %s.',
|
||||
val,
|
||||
lrcheck.name,
|
||||
self.name,
|
||||
)
|
||||
|
||||
return val
|
||||
|
||||
@classmethod
|
||||
@lru_cache(maxsize=128)
|
||||
def from_tag(cls, tag: str) -> LocaleResolved:
|
||||
"""Return a locale for a given string tag.
|
||||
|
||||
Tags can be provided in BCP 47 form ('en-US') or POSIX locale
|
||||
string form ('en_US.UTF-8').
|
||||
"""
|
||||
# pylint: disable=too-many-branches
|
||||
# pylint: disable=too-many-statements
|
||||
# pylint: disable=too-many-return-statements
|
||||
|
||||
# POSIX locale strings can contain a dot followed by an
|
||||
# encoding. Strip that off.
|
||||
tag2 = tag.split('.')[0]
|
||||
|
||||
# Normalize things to lowercase and underscores (we should see
|
||||
# 'zh_HANT' and 'zh-Hant' as the same).
|
||||
bits = [bit.lower() for bit in tag2.replace('-', '_').split('_')]
|
||||
|
||||
if not bits or not bits[0]:
|
||||
raise ValueError(f'Invalid tag "{tag}".')
|
||||
|
||||
lang = bits[0]
|
||||
extras = bits[1:]
|
||||
|
||||
if lang == 'en':
|
||||
if 'x' in extras and 'pirate' in extras:
|
||||
return cls.PIRATE_SPEAK
|
||||
if 'x' in extras and 'gibberish' in extras:
|
||||
return cls.GIBBERISH
|
||||
return cls.ENGLISH
|
||||
if lang == 'zh':
|
||||
# With no extras, default to simplified.
|
||||
if not extras or any(val in extras for val in ['hans', 'cn', 'sg']):
|
||||
return cls.CHINESE_SIMPLIFIED
|
||||
if any(val in extras for val in ['hant', 'tw']):
|
||||
return cls.CHINESE_TRADITIONAL
|
||||
|
||||
# Make noise if we come across something unexpected so we
|
||||
# can add it.
|
||||
fallback = cls.CHINESE_SIMPLIFIED
|
||||
logging.warning(
|
||||
'%s: Unknown Chinese tag variant "%s"; returning %s.',
|
||||
cls.__name__,
|
||||
tag,
|
||||
fallback.name,
|
||||
)
|
||||
return fallback
|
||||
if lang == 'pt':
|
||||
# With no extras, default to Brazil.
|
||||
if not extras or 'br' in extras:
|
||||
return cls.PORTUGUESE_BRAZIL
|
||||
if any(
|
||||
val in extras
|
||||
for val in ['pt', 'ao', 'mz', 'tl', 'cv', 'gw', 'st']
|
||||
):
|
||||
return cls.PORTUGUESE_PORTUGAL
|
||||
|
||||
# Make noise if we come across something unexpected so we
|
||||
# can add it.
|
||||
fallback = cls.PORTUGUESE_BRAZIL
|
||||
logging.warning(
|
||||
'%s: Unknown Portuguese tag variant "%s"; returning %s.',
|
||||
cls.__name__,
|
||||
tag,
|
||||
fallback.name,
|
||||
)
|
||||
return fallback
|
||||
if lang == 'es':
|
||||
# With no extras, default to latin-america spanish.
|
||||
if not extras or any(
|
||||
val in extras
|
||||
for val in [
|
||||
'419',
|
||||
'mx',
|
||||
'ar',
|
||||
'co',
|
||||
'cl',
|
||||
'pe',
|
||||
've',
|
||||
'cr',
|
||||
'pr',
|
||||
'do',
|
||||
'uy',
|
||||
'ec',
|
||||
'pa',
|
||||
]
|
||||
):
|
||||
return cls.SPANISH_LATIN_AMERICA
|
||||
if 'es' in extras:
|
||||
return cls.SPANISH_SPAIN
|
||||
|
||||
# Make noise if we come across something unexpected so we
|
||||
# can add it.
|
||||
fallback = cls.SPANISH_LATIN_AMERICA
|
||||
logging.warning(
|
||||
'%s: Unknown Spanish tag variant "%s"; returning %s.',
|
||||
cls.__name__,
|
||||
tag,
|
||||
fallback.name,
|
||||
)
|
||||
return fallback
|
||||
if lang == 'ar':
|
||||
return cls.ARABIC
|
||||
if lang == 'be':
|
||||
return cls.BELARUSSIAN
|
||||
if lang == 'hr':
|
||||
return cls.CROATIAN
|
||||
if lang == 'cs':
|
||||
return cls.CZECH
|
||||
if lang == 'da':
|
||||
return cls.DANISH
|
||||
if lang == 'nl':
|
||||
return cls.DUTCH
|
||||
if lang == 'eo':
|
||||
return cls.ESPERANTO
|
||||
if lang == 'fil':
|
||||
return cls.FILIPINO
|
||||
if lang == 'fr':
|
||||
return cls.FRENCH
|
||||
if lang == 'de':
|
||||
return cls.GERMAN
|
||||
if lang == 'el':
|
||||
return cls.GREEK
|
||||
if lang == 'hi':
|
||||
return cls.HINDI
|
||||
if lang == 'hu':
|
||||
return cls.HUNGARIAN
|
||||
if lang == 'id':
|
||||
return cls.INDONESIAN
|
||||
if lang == 'it':
|
||||
return cls.ITALIAN
|
||||
if lang == 'ko':
|
||||
return cls.KOREAN
|
||||
if lang == 'ms':
|
||||
return cls.MALAY
|
||||
if lang == 'fa':
|
||||
return cls.PERSIAN
|
||||
if lang == 'pl':
|
||||
return cls.POLISH
|
||||
if lang == 'ro':
|
||||
return cls.ROMANIAN
|
||||
if lang == 'ru':
|
||||
return cls.RUSSIAN
|
||||
if lang == 'sr':
|
||||
return cls.SERBIAN
|
||||
if lang == 'sk':
|
||||
return cls.SLOVAK
|
||||
if lang == 'sv':
|
||||
return cls.SWEDISH
|
||||
if lang == 'ta':
|
||||
return cls.TAMIL
|
||||
if lang == 'th':
|
||||
return cls.THAI
|
||||
if lang == 'tr':
|
||||
return cls.TURKISH
|
||||
if lang == 'uk':
|
||||
return cls.UKRAINIAN
|
||||
if lang == 'vec':
|
||||
return cls.VENETIAN
|
||||
if lang == 'vi':
|
||||
return cls.VIETNAMESE
|
||||
|
||||
# Make noise if we come across something unexpected so we can
|
||||
# add it.
|
||||
fallback = cls.ENGLISH
|
||||
logging.warning(
|
||||
'%s: Unknown tag "%s"; returning %s.',
|
||||
cls.__name__,
|
||||
tag,
|
||||
fallback.name,
|
||||
)
|
||||
return fallback
|
||||
|
|
|
|||
|
|
@ -10,11 +10,13 @@ settings that are not accessible through the UI/etc.
|
|||
|
||||
from __future__ import annotations
|
||||
|
||||
import datetime
|
||||
from enum import Enum
|
||||
from dataclasses import dataclass
|
||||
from dataclasses import dataclass, field
|
||||
from typing import TYPE_CHECKING, Annotated, override, assert_never
|
||||
|
||||
from efro.dataclassio import ioprepped, IOAttrs, IOMultiType
|
||||
from bacommon.locale import Locale
|
||||
|
||||
|
||||
if TYPE_CHECKING:
|
||||
|
|
@ -35,10 +37,84 @@ class AssetsV1GlobalVals:
|
|||
] = ''
|
||||
|
||||
|
||||
class AssetsV1StrInputTypeID(Enum):
|
||||
"""Type ID for each of our subclasses."""
|
||||
|
||||
BASIC = 'b'
|
||||
|
||||
|
||||
class AssetsV1StrInput(IOMultiType[AssetsV1StrInputTypeID]):
|
||||
"""Top level class for our multitype."""
|
||||
|
||||
@override
|
||||
@classmethod
|
||||
def get_type_id(cls) -> AssetsV1StrInputTypeID:
|
||||
# Require child classes to supply this themselves. If we did a
|
||||
# full type registry/lookup here it would require us to import
|
||||
# everything and would prevent lazy loading.
|
||||
raise NotImplementedError()
|
||||
|
||||
@override
|
||||
@classmethod
|
||||
def get_type(
|
||||
cls, type_id: AssetsV1StrInputTypeID
|
||||
) -> type[AssetsV1StrInput]:
|
||||
"""Return the subclass for each of our type-ids."""
|
||||
# pylint: disable=cyclic-import
|
||||
|
||||
t = AssetsV1StrInputTypeID
|
||||
if type_id is t.BASIC:
|
||||
return BasicV1StrInput
|
||||
|
||||
# Important to make sure we provide all types.
|
||||
assert_never(type_id)
|
||||
|
||||
|
||||
@ioprepped
|
||||
@dataclass
|
||||
class BasicV1StrInput(AssetsV1StrInput):
|
||||
"""Just a test."""
|
||||
|
||||
@override
|
||||
@classmethod
|
||||
def get_type_id(cls) -> AssetsV1StrInputTypeID:
|
||||
return AssetsV1StrInputTypeID.BASIC
|
||||
|
||||
|
||||
@ioprepped
|
||||
@dataclass
|
||||
class AssetsV1StrData:
|
||||
"""Data and output for a string asset."""
|
||||
|
||||
@dataclass
|
||||
class Output:
|
||||
"""Represents a single instance of localized output."""
|
||||
|
||||
class Source(Enum):
|
||||
"""Where localized output can come from."""
|
||||
|
||||
AI_V1 = 'ai_v1'
|
||||
|
||||
output_id: Annotated[int, IOAttrs('i')]
|
||||
created: Annotated[datetime.datetime, IOAttrs('c')]
|
||||
source: Annotated[Source, IOAttrs('s')]
|
||||
locale: Annotated[Locale, IOAttrs('l')]
|
||||
value_default: Annotated[
|
||||
str | None, IOAttrs('d', store_default=False)
|
||||
] = None
|
||||
|
||||
inputs: Annotated[list[AssetsV1StrInput], IOAttrs('i')] = field(
|
||||
default_factory=list
|
||||
)
|
||||
outputs: Annotated[list[Output], IOAttrs('o')] = field(default_factory=list)
|
||||
next_output_id: Annotated[int, IOAttrs('n')] = 0
|
||||
|
||||
|
||||
class AssetsV1PathValsTypeID(Enum):
|
||||
"""Types of vals we can store for paths."""
|
||||
|
||||
TEX_V1 = 'tex_v1'
|
||||
# STR_V1 = 'str_v1'
|
||||
|
||||
|
||||
class AssetsV1PathVals(IOMultiType[AssetsV1PathValsTypeID]):
|
||||
|
|
@ -63,15 +139,13 @@ class AssetsV1PathVals(IOMultiType[AssetsV1PathValsTypeID]):
|
|||
cls, type_id: AssetsV1PathValsTypeID
|
||||
) -> type[AssetsV1PathVals]:
|
||||
# pylint: disable=cyclic-import
|
||||
out: type[AssetsV1PathVals]
|
||||
t = AssetsV1PathValsTypeID
|
||||
|
||||
if type_id is t.TEX_V1:
|
||||
out = AssetsV1PathValsTexV1
|
||||
else:
|
||||
# Important to make sure we provide all types.
|
||||
assert_never(type_id)
|
||||
return out
|
||||
return AssetsV1PathValsTexV1
|
||||
|
||||
# Important to make sure we provide all types.
|
||||
assert_never(type_id)
|
||||
|
||||
|
||||
@ioprepped
|
||||
|
|
|
|||
4
dist/ba_data/python/baenv.py
vendored
4
dist/ba_data/python/baenv.py
vendored
|
|
@ -53,8 +53,8 @@ if TYPE_CHECKING:
|
|||
|
||||
# Build number and version of the ballistica binary we expect to be
|
||||
# using.
|
||||
TARGET_BALLISTICA_BUILD = 22350
|
||||
TARGET_BALLISTICA_VERSION = '1.7.39'
|
||||
TARGET_BALLISTICA_BUILD = 22381
|
||||
TARGET_BALLISTICA_VERSION = '1.7.41'
|
||||
|
||||
|
||||
@dataclass
|
||||
|
|
|
|||
11
dist/ba_data/python/bascenev1/__init__.py
vendored
11
dist/ba_data/python/bascenev1/__init__.py
vendored
|
|
@ -16,7 +16,7 @@ import logging
|
|||
# other modules; the goal is to let most simple mods rely solely on this
|
||||
# module to keep things simple.
|
||||
|
||||
from efro.util import set_canonical_module_names
|
||||
# from efro.util import set_canonical_module_names
|
||||
from babase import (
|
||||
ActivityNotFoundError,
|
||||
add_clean_frame_callback,
|
||||
|
|
@ -56,6 +56,7 @@ from babase import (
|
|||
screenmessage,
|
||||
set_analytics_screen,
|
||||
SessionNotFoundError,
|
||||
SessionTeamNotFoundError,
|
||||
storagename,
|
||||
timestring,
|
||||
UIScale,
|
||||
|
|
@ -180,7 +181,7 @@ from bascenev1._gameutils import (
|
|||
Time,
|
||||
)
|
||||
from bascenev1._level import Level
|
||||
from bascenev1._lobby import Lobby, Chooser
|
||||
from bascenev1._lobby import Lobby, Chooser, JoinInfo
|
||||
from bascenev1._map import (
|
||||
get_filtered_map_name,
|
||||
get_map_class,
|
||||
|
|
@ -372,6 +373,7 @@ __all__ = [
|
|||
'is_point_in_box',
|
||||
'is_replay_paused',
|
||||
'JoinActivity',
|
||||
'JoinInfo',
|
||||
'Level',
|
||||
'Lobby',
|
||||
'lock_all_input',
|
||||
|
|
@ -422,6 +424,7 @@ __all__ = [
|
|||
'ScoreScreenActivity',
|
||||
'ScoreType',
|
||||
'SessionNotFoundError',
|
||||
'SessionTeamNotFoundError',
|
||||
'broadcastmessage',
|
||||
'Session',
|
||||
'SessionData',
|
||||
|
|
@ -475,7 +478,9 @@ __all__ = [
|
|||
|
||||
# We want stuff here to show up as bascenev1.Foo instead of
|
||||
# bascenev1._submodule.Foo.
|
||||
set_canonical_module_names(globals())
|
||||
# UPDATE: Trying without this for now. Seems like this might cause more
|
||||
# harm than good. Can flip it back on if it is missed.
|
||||
# set_canonical_module_names(globals())
|
||||
|
||||
# Sanity check: we want to keep ballistica's dependencies and
|
||||
# bootstrapping order clearly defined; let's check a few particular
|
||||
|
|
|
|||
16
dist/ba_data/python/bascenev1/_activity.py
vendored
16
dist/ba_data/python/bascenev1/_activity.py
vendored
|
|
@ -5,24 +5,22 @@ from __future__ import annotations
|
|||
|
||||
import weakref
|
||||
import logging
|
||||
from typing import TYPE_CHECKING, Generic, TypeVar
|
||||
from typing import TYPE_CHECKING
|
||||
|
||||
import babase
|
||||
import _bascenev1
|
||||
from bascenev1._dependency import DependencyComponent
|
||||
from bascenev1._team import Team
|
||||
from bascenev1._messages import UNHANDLED
|
||||
from bascenev1._player import Player
|
||||
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from typing import Any
|
||||
import bascenev1
|
||||
|
||||
PlayerT = TypeVar('PlayerT', bound=Player)
|
||||
TeamT = TypeVar('TeamT', bound=Team)
|
||||
|
||||
|
||||
class Activity(DependencyComponent, Generic[PlayerT, TeamT]):
|
||||
class Activity[PlayerT: bascenev1.Player, TeamT: bascenev1.Team](
|
||||
DependencyComponent
|
||||
):
|
||||
"""Units of execution wrangled by a :class:`bascenev1.Session`.
|
||||
|
||||
Examples of activities include games, score-screens, cutscenes, etc.
|
||||
|
|
@ -689,10 +687,12 @@ class Activity(DependencyComponent, Generic[PlayerT, TeamT]):
|
|||
sessionplayer.setactivity(None)
|
||||
sessionplayer.activityplayer = None
|
||||
|
||||
# noinspection PyUnresolvedReferences
|
||||
def _setup_player_and_team_types(self) -> None:
|
||||
"""Pull player and team types from our typing.Generic params."""
|
||||
|
||||
from bascenev1._player import Player
|
||||
from bascenev1._team import Team
|
||||
|
||||
# TODO: There are proper calls for pulling these in Python 3.8;
|
||||
# should update this code when we adopt that.
|
||||
# NOTE: If we get Any as PlayerT or TeamT (generally due
|
||||
|
|
|
|||
8
dist/ba_data/python/bascenev1/_actor.py
vendored
8
dist/ba_data/python/bascenev1/_actor.py
vendored
|
|
@ -6,7 +6,7 @@ from __future__ import annotations
|
|||
|
||||
import weakref
|
||||
import logging
|
||||
from typing import TYPE_CHECKING, TypeVar, overload
|
||||
from typing import TYPE_CHECKING, overload
|
||||
|
||||
import babase
|
||||
|
||||
|
|
@ -19,12 +19,10 @@ from bascenev1._messages import (
|
|||
)
|
||||
|
||||
if TYPE_CHECKING:
|
||||
from typing import Any, Literal
|
||||
from typing import Any, Literal, Self
|
||||
|
||||
import bascenev1
|
||||
|
||||
ActorT = TypeVar('ActorT', bound='Actor')
|
||||
|
||||
|
||||
class Actor:
|
||||
"""High level logical entities in an :class:`~bascenev1.Activity`.
|
||||
|
|
@ -111,7 +109,7 @@ class Actor:
|
|||
|
||||
return UNHANDLED
|
||||
|
||||
def autoretain(self: ActorT) -> ActorT:
|
||||
def autoretain(self) -> Self:
|
||||
"""Keep this actor alive without needing to hold a reference to it.
|
||||
|
||||
This keeps the actor in existence by storing a reference to it
|
||||
|
|
|
|||
13
dist/ba_data/python/bascenev1/_coopgame.py
vendored
13
dist/ba_data/python/bascenev1/_coopgame.py
vendored
|
|
@ -4,7 +4,7 @@
|
|||
from __future__ import annotations
|
||||
|
||||
import logging
|
||||
from typing import TYPE_CHECKING, TypeVar, override
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
import babase
|
||||
|
||||
|
|
@ -18,11 +18,16 @@ if TYPE_CHECKING:
|
|||
|
||||
import bascenev1
|
||||
|
||||
PlayerT = TypeVar('PlayerT', bound='bascenev1.Player')
|
||||
TeamT = TypeVar('TeamT', bound='bascenev1.Team')
|
||||
|
||||
# Note: Need to suppress an undefined variable here because our pylint
|
||||
# plugin clears type-arg declarations (which we don't require to be
|
||||
# present at runtime) but keeps parent type-args (which we sometimes use
|
||||
# at runtime).
|
||||
|
||||
|
||||
class CoopGameActivity(GameActivity[PlayerT, TeamT]):
|
||||
class CoopGameActivity[PlayerT: bascenev1.Player, TeamT: bascenev1.Team](
|
||||
GameActivity[PlayerT, TeamT] # pylint: disable=undefined-variable
|
||||
):
|
||||
"""Base class for cooperative-mode games."""
|
||||
|
||||
# We can assume our session is a CoopSession.
|
||||
|
|
|
|||
10
dist/ba_data/python/bascenev1/_dependency.py
vendored
10
dist/ba_data/python/bascenev1/_dependency.py
vendored
|
|
@ -5,7 +5,7 @@
|
|||
from __future__ import annotations
|
||||
|
||||
import weakref
|
||||
from typing import Generic, TypeVar, TYPE_CHECKING, override
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
import babase
|
||||
|
||||
|
|
@ -16,10 +16,8 @@ if TYPE_CHECKING:
|
|||
|
||||
import bascenev1
|
||||
|
||||
T = TypeVar('T', bound='DependencyComponent')
|
||||
|
||||
|
||||
class Dependency(Generic[T]):
|
||||
class Dependency[T: DependencyComponent]:
|
||||
"""A dependency on a DependencyComponent (with an optional config).
|
||||
|
||||
This class is used to request and access functionality provided
|
||||
|
|
@ -122,7 +120,7 @@ class DependencyComponent:
|
|||
return []
|
||||
|
||||
|
||||
class DependencyEntry:
|
||||
class DependencyEntry[T: DependencyComponent]:
|
||||
"""Data associated with a dep/config pair in bascenev1.DependencySet."""
|
||||
|
||||
# def __del__(self) -> None:
|
||||
|
|
@ -165,7 +163,7 @@ class DependencyEntry:
|
|||
return component
|
||||
|
||||
|
||||
class DependencySet(Generic[T]):
|
||||
class DependencySet[T: DependencyComponent]:
|
||||
"""Set of resolved dependencies and their associated data.
|
||||
|
||||
To use DependencyComponents, a set must be created, resolved, and then
|
||||
|
|
|
|||
16
dist/ba_data/python/bascenev1/_gameactivity.py
vendored
16
dist/ba_data/python/bascenev1/_gameactivity.py
vendored
|
|
@ -7,7 +7,7 @@ from __future__ import annotations
|
|||
|
||||
import random
|
||||
import logging
|
||||
from typing import TYPE_CHECKING, TypeVar, override
|
||||
from typing import TYPE_CHECKING, override
|
||||
|
||||
import babase
|
||||
|
||||
|
|
@ -24,14 +24,20 @@ if TYPE_CHECKING:
|
|||
|
||||
from bascenev1lib.actor.playerspaz import PlayerSpaz
|
||||
from bascenev1lib.actor.bomb import TNTSpawner
|
||||
|
||||
import bascenev1
|
||||
|
||||
PlayerT = TypeVar('PlayerT', bound='bascenev1.Player')
|
||||
TeamT = TypeVar('TeamT', bound='bascenev1.Team')
|
||||
|
||||
# Note: Need to suppress an undefined variable here because our pylint
|
||||
# plugin clears type-arg declarations (which we don't require to be
|
||||
# present at runtime) but keeps parent type-args (which we sometimes use
|
||||
# at runtime).
|
||||
|
||||
|
||||
class GameActivity(Activity[PlayerT, TeamT]):
|
||||
"""Common base class for all game bascenev1.Activities."""
|
||||
class GameActivity[PlayerT: bascenev1.Player, TeamT: bascenev1.Team](
|
||||
Activity[PlayerT, TeamT] # pylint: disable=undefined-variable
|
||||
):
|
||||
"""Common base class for all game activities."""
|
||||
|
||||
# pylint: disable=too-many-public-methods
|
||||
|
||||
|
|
|
|||
2
dist/ba_data/python/bascenev1/_map.py
vendored
2
dist/ba_data/python/bascenev1/_map.py
vendored
|
|
@ -333,7 +333,7 @@ class Map(Actor):
|
|||
) -> Sequence[float]:
|
||||
"""Return a flag position on the map for the given team index.
|
||||
|
||||
Pass None to get the default flag point.
|
||||
Pass ``None`` to get the default flag point.
|
||||
(used for things such as king-of-the-hill)
|
||||
"""
|
||||
if team_index is None:
|
||||
|
|
|
|||
21
dist/ba_data/python/bascenev1/_messages.py
vendored
21
dist/ba_data/python/bascenev1/_messages.py
vendored
|
|
@ -5,14 +5,18 @@
|
|||
from __future__ import annotations
|
||||
|
||||
from dataclasses import dataclass
|
||||
from typing import TYPE_CHECKING, TypeVar
|
||||
from typing import TYPE_CHECKING
|
||||
from enum import Enum
|
||||
|
||||
import babase
|
||||
|
||||
if TYPE_CHECKING:
|
||||
# pylint: disable=cyclic-import
|
||||
from typing import Sequence, Any
|
||||
|
||||
# from _bascenev1 import Node
|
||||
# from bascenev1._player import Player
|
||||
|
||||
import bascenev1
|
||||
|
||||
|
||||
|
|
@ -59,9 +63,6 @@ class DieMessage:
|
|||
how: DeathType = DeathType.GENERIC
|
||||
|
||||
|
||||
PlayerT = TypeVar('PlayerT', bound='bascenev1.Player')
|
||||
|
||||
|
||||
class PlayerDiedMessage:
|
||||
"""A message saying a bascenev1.Player has died."""
|
||||
|
||||
|
|
@ -91,7 +92,9 @@ class PlayerDiedMessage:
|
|||
self.killed = was_killed
|
||||
self.how = how
|
||||
|
||||
def getkillerplayer(self, playertype: type[PlayerT]) -> PlayerT | None:
|
||||
def getkillerplayer[PlayerT: bascenev1.Player](
|
||||
self, playertype: type[PlayerT]
|
||||
) -> PlayerT | None:
|
||||
"""Return the bascenev1.Player responsible for the killing, if any.
|
||||
|
||||
Pass the Player type being used by the current game.
|
||||
|
|
@ -99,7 +102,9 @@ class PlayerDiedMessage:
|
|||
assert isinstance(self._killerplayer, (playertype, type(None)))
|
||||
return self._killerplayer
|
||||
|
||||
def getplayer(self, playertype: type[PlayerT]) -> PlayerT:
|
||||
def getplayer[PlayerT: bascenev1.Player](
|
||||
self, playertype: type[PlayerT]
|
||||
) -> PlayerT:
|
||||
"""Return the bascenev1.Player that died.
|
||||
|
||||
The type of player for the current activity should be passed so that
|
||||
|
|
@ -237,7 +242,9 @@ class HitMessage:
|
|||
force_direction if force_direction is not None else velocity
|
||||
)
|
||||
|
||||
def get_source_player(self, playertype: type[PlayerT]) -> PlayerT | None:
|
||||
def get_source_player[PlayerT: bascenev1.Player](
|
||||
self, playertype: type[PlayerT]
|
||||
) -> PlayerT | None:
|
||||
"""Return the source-player if one exists and is the provided type."""
|
||||
player: Any = self._source_player
|
||||
|
||||
|
|
|
|||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue