Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Minecraft.Client/Common/Consoles_App.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -9776,7 +9776,7 @@ void CMinecraftApp::getLocale(vector<wstring> &vecWstrLocales)
locales.push_back(eMCLang_zhCN);
break;

#if defined __PS3__ || defined __ORBIS__ || defined __PSVITA__ || defined _DURANGO
#if defined __PS3__ || defined __ORBIS__ || defined __PSVITA__ || defined _DURANGO || defined _WINDOWS64
case XC_LANGUAGE_DANISH:
locales.push_back(eMCLang_daDA);
locales.push_back(eMCLang_daDK);
Expand Down
Binary file modified Minecraft.Client/Common/Media/MediaWindows64.arc
Binary file not shown.
8 changes: 4 additions & 4 deletions Minecraft.Client/Common/UI/UIController.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -345,7 +345,7 @@ UIController::EFont UIController::getFontForLanguage(int language)
switch(language)
{
case XC_LANGUAGE_JAPANESE: return eFont_Japanese;
#ifdef _DURANGO
#if defined(_DURANGO) || defined(_WINDOWS64)
case XC_LANGUAGE_SCHINESE: return eFont_SimpChinese;
#endif
case XC_LANGUAGE_TCHINESE: return eFont_TradChinese;
Expand Down Expand Up @@ -392,8 +392,8 @@ void UIController::SetupFont()

if (m_eTargetFont == m_eCurrentFont)
{
// 4J-JEV: If we're ingame, reload the font to update all the text.
if (app.GetGameStarted()) app.SetAction(ProfileManager.GetPrimaryPad(), eAppAction_ReloadFont);
// 4J-JEV: Font type unchanged but language changed - always reload UI to refresh strings.
app.SetAction(ProfileManager.GetPrimaryPad(), eAppAction_ReloadFont);
return;
}

Expand Down Expand Up @@ -708,7 +708,7 @@ int UIController::reloadSkinThreadProc(void* lpParam)
controller->m_groups[eUIGroup_Fullscreen]->ReloadAll();

// 4J Stu - Don't do this on windows, as we never navigated forwards to start with
#ifndef _WINDOW64
#ifndef _WINDOWS64
controller->NavigateBack(0, false, eUIScene_COUNT, eUILayer_Tooltips);
#endif
LeaveCriticalSection(&ms_reloadSkinCS);
Expand Down
2 changes: 1 addition & 1 deletion Minecraft.Client/Common/UI/UIScene_LanguageSelector.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
#define HAS_LANGUAGE_KO_KR(exp) exp,
#define HAS_LANGUAGE_CN_TW(exp) exp,

#ifdef _DURANGO
#if defined(_DURANGO) || defined(_WINDOWS64)
#define HAS_LANGUAGE_CN_CN(exp) exp,
#define HAS_LANGUAGE_SK_SK(exp) exp,
#define HAS_LANGUAGE_CZ_CZ(exp) exp,
Expand Down
2 changes: 1 addition & 1 deletion Minecraft.Client/Common/UI/UIScene_SettingsOptionsMenu.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#include "UI.h"
#include "UIScene_SettingsOptionsMenu.h"

#if defined(_XBOX_ONE)
#if defined(_XBOX_ONE) || defined(_WINDOWS64)
#define _ENABLE_LANGUAGE_SELECT
#endif

Expand Down
105 changes: 105 additions & 0 deletions Minecraft.Client/Extrax64Stubs.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -544,8 +544,113 @@ void XMemDestroyDecompressionContext(XMEMDECOMPRESSION_CONTEXT Context)

//#ifndef __PS3__
#if !(defined _DURANGO || defined __PS3__ || defined __ORBIS__ || defined __PSVITA__)
#ifdef _WINDOWS64
DWORD XGetLanguage()
{
// If the player has explicitly selected a language in-game, honour that override
unsigned char ucLang = app.GetMinecraftLanguage(0);
if (ucLang != MINECRAFT_LANGUAGE_DEFAULT) return ucLang;

// Otherwise detect the Windows UI language and map it to an XC_LANGUAGE_ constant
WCHAR wchLocaleName[LOCALE_NAME_MAX_LENGTH];
GetUserDefaultLocaleName(wchLocaleName, LOCALE_NAME_MAX_LENGTH);
eMCLang eLang = static_cast<eMCLang>(app.get_eMCLang(wchLocaleName));

switch (eLang)
{
case eMCLang_jaJP:
return XC_LANGUAGE_JAPANESE;
case eMCLang_deDE:
case eMCLang_deAT:
case eMCLang_deCH:
return XC_LANGUAGE_GERMAN;
case eMCLang_frFR:
case eMCLang_frCA:
case eMCLang_frBE:
case eMCLang_frCH:
return XC_LANGUAGE_FRENCH;
case eMCLang_esES:
case eMCLang_esMX:
case eMCLang_laLAS:
case eMCLang_esAR:
case eMCLang_esCL:
case eMCLang_esCO:
case eMCLang_esUS:
return XC_LANGUAGE_SPANISH;
case eMCLang_itIT:
return XC_LANGUAGE_ITALIAN;
case eMCLang_koKR:
return XC_LANGUAGE_KOREAN;
case eMCLang_zhCHT:
case eMCLang_zhHK:
case eMCLang_zhTW:
case eMCLang_hant:
return XC_LANGUAGE_TCHINESE;
case eMCLang_ptPT:
case eMCLang_ptBR:
return XC_LANGUAGE_PORTUGUESE;
case eMCLang_plPL:
return XC_LANGUAGE_POLISH;
case eMCLang_ruRU:
return XC_LANGUAGE_RUSSIAN;
case eMCLang_svSV:
case eMCLang_svSE:
return XC_LANGUAGE_SWEDISH;
case eMCLang_trTR:
return XC_LANGUAGE_TURKISH;
case eMCLang_nbNO:
case eMCLang_noNO:
case eMCLang_nnNO:
return XC_LANGUAGE_BNORWEGIAN;
case eMCLang_nlNL:
case eMCLang_nlBE:
return XC_LANGUAGE_DUTCH;
case eMCLang_zhCN:
case eMCLang_zhSG:
case eMCLang_hans:
case eMCLang_csCS:
return XC_LANGUAGE_SCHINESE;
case eMCLang_fiFI:
return XC_LANGUAGE_FINISH;
case eMCLang_daDA:
case eMCLang_daDK:
return XC_LANGUAGE_DANISH;
case eMCLang_csCZ:
case eMCLang_enCZ:
return XC_LANGUAGE_CZECH;
case eMCLang_skSK:
case eMCLang_enSK:
return XC_LANGUAGE_SLOVAK;
case eMCLang_elEL:
case eMCLang_elGR:
case eMCLang_enGR:
return XC_LANGUAGE_GREEK;
case eMCLang_enGB:
case eMCLang_enIE:
case eMCLang_enAU:
case eMCLang_enNZ:
case eMCLang_enCA:
case eMCLang_enUS:
default:
return XC_LANGUAGE_ENGLISH;
}
}

DWORD XGetLocale()
{
// If the player has explicitly selected a locale in-game, honour that override
unsigned char ucLocale = app.GetMinecraftLocale(0);
if (ucLocale != MINECRAFT_LANGUAGE_DEFAULT) return ucLocale;

// Otherwise map the Windows UI locale to an XC_LOCALE_ constant
WCHAR wchLocaleName[LOCALE_NAME_MAX_LENGTH];
GetUserDefaultLocaleName(wchLocaleName, LOCALE_NAME_MAX_LENGTH);
return app.get_xcLang(wchLocaleName);
}
#else
DWORD XGetLanguage() { return 1; }
DWORD XGetLocale() { return 0; }
#endif
DWORD XEnableGuestSignin(BOOL fEnable) { return 0; }
#endif

Expand Down
Binary file modified Minecraft.Client/Windows64Media/Media/languages.loc
Binary file not shown.
152 changes: 152 additions & 0 deletions Minecraft.Client/Windows64Media/loc/ru-RU/4J_stringsGeneric.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,152 @@
<root>
<data name="IDS_NULL">
<value>Не используется</value>
</data>

<data name="IDS_OK">
<value>ОК</value>
</data>

<data name="IDS_BACK">
<value>Назад</value>
</data>

<data name="IDS_CANCEL">
<value>Отмена</value>
</data>

<data name="IDS_YES">
<value>Да</value>
</data>

<data name="IDS_NO">
<value>Нет</value>
</data>

<data name="IDS_CORRUPTSAVE_TITLE">
<value>Файл сохранения поврежден</value>
</data>

<data name="IDS_CORRUPTSAVE_TEXT">
<value>Похоже, сохраненные данные повреждены. Создать новый файл и заменить им поврежденный?</value>
</data>

<data name="IDS_NOFREESPACE_TITLE">
<value>Недостаточно места</value>
</data>

<data name="IDS_NOFREESPACE_TEXT">
<value>На этом устройстве хранения данных мало места для создания файла сохранения.</value>
</data>

<data name="IDS_SELECTAGAIN">
<value>Выбрать заново</value>
</data>

<data name="IDS_PLAYWITHOUTSAVING">
<value>Играть без сохранения</value>
</data>

<data name="IDS_CREATEANEWSAVE">
<value>Создать новый файл сохранения</value>
</data>

<data name="IDS_OVERWRITESAVE_TITLE">
<value>Заменить файл сохранения?</value>
</data>

<data name="IDS_OVERWRITESAVE_TEXT">
<value>На этом устройстве хранения данных уже есть такой файл. Заменить его?</value>
</data>

<data name="IDS_OVERWRITESAVE_NO">
<value>Нет, не заменять.</value>
</data>

<data name="IDS_OVERWRITESAVE_YES">
<value>Заменить и сохранить.</value>
</data>

<data name="IDS_FAILED_TO_SAVE_TITLE">
<value>Ошибка сохранения</value>
</data>

<data name="IDS_STORAGEDEVICEPROBLEM_TITLE">
<value>Устройство хранения данных: сбой</value>
</data>

<data name="IDS_FAILED_TO_SAVE_TEXT">
<value>Это устройство хранения данных недоступно или работает некорректно.</value>
</data>

<data name="IDS_FAILED_TO_LOADSAVE_TEXT">
<value>Это устройство хранения данных недоступно или работает некорректно. Пожалуйста, выберите другое.</value>
</data>

<data name="IDS_SELECTANEWDEVICE">
<value>Выбрать другое устройство</value>
</data>

<data name="IDS_NODEVICE_TITLE">
<value>Нет устройства хранения данных</value>
</data>

<data name="IDS_NODEVICE_TEXT">
<value>Если вы не выберите устройство хранения данных, функция сохранения работать не будет.</value>
</data>

<data name="IDS_NODEVICE_ACCEPT">
<value>Выбрать устройство</value>
</data>

<data name="IDS_NODEVICE_DECLINE">
<value>Продолжить без сохранения</value>
</data>

<data name="IDS_DEVICEGONE_TEXT">
<value>Устройство хранения данных извлечено. Пожалуйста, выберите другое.</value>
</data>

<data name="IDS_DEVICEGONE_TITLE">
<value>Ошибка загрузки</value>
</data>

<data name="IDS_KEYBOARDUI_SAVEGAME_TITLE">
<value>Назовите файл сохранения</value>
</data>

<data name="IDS_KEYBOARDUI_SAVEGAME_TEXT">
<value>Введите имя файла сохранения.</value>
</data>

<data name="IDS_WARNING_ARCADE_TEXT">
<value>Выйти из игры?</value>
</data>
<data name="IDS_PRO_RETURNEDTOMENU_TITLE">
<value>Выполнен выход из системы</value>
</data>
<data name="IDS_PRO_RETURNEDTOMENU_ACCEPT">
<value>Продолжить игру</value>
</data>
<data name="IDS_PRO_NOTONLINE_DECLINE">
<value>Играть в автономном режиме</value>
</data>
<data name="IDS_STO_SAVING_SHORT">
<value>Сохранение…</value>
</data>

<data name="IDS_STO_SAVING_LONG">
<value>Идет сохранение. Не выключайте консоль.</value>
</data>
<data name="IDS_PRO_UNLOCKGAME_TITLE">
<value>Полная версия</value>
</data>
<data name="IDS_PRO_UNLOCKGAME_TEXT">
<value>Это пробная версия игры Minecraft. Если бы у вас была полная версия, вы бы сейчас заработали "достижение"t!
Перейдите на полную версию Minecraft и наслаждайтесь всеми возможностями игры, в том числе игрой с друзьями из других стран через Xbox Live.
Хотите разблокировать полную версию?</value>
</data>
<data name="IDS_ERROR_NETWORK">
<value>Произошла ошибка сети</value>
</data>
</root>
Loading