mirror of
https://github.com/electronicarts/CNC_TS_and_RA2_Mission_Editor.git
synced 2025-05-01 01:21:41 -04:00
parent
364a6376d4
commit
6c7cf1478f
15 changed files with 2748 additions and 2528 deletions
|
@ -113,13 +113,19 @@ void CMapD::OnEditchangeTheater()
|
|||
|
||||
void CMapD::UpdateStrings()
|
||||
{
|
||||
|
||||
CString curCaption;
|
||||
GetWindowText(curCaption);
|
||||
SetWindowText(TranslateStringACP(curCaption));
|
||||
GetDlgItem(IDC_DESC)->SetWindowText(GetLanguageStringACP("MapDesc"));
|
||||
GetDlgItem(IDC_SIZEFRAME)->SetWindowText(GetLanguageStringACP("MapSizeFrame"));
|
||||
GetDlgItem(IDC_LSIZE)->SetWindowText(GetLanguageStringACP("MapSize"));
|
||||
GetDlgItem(IDC_USEABLEFRAME)->SetWindowText(GetLanguageStringACP("MapVisibleSizeFrame"));
|
||||
GetDlgItem(IDC_LUSEABLE)->SetWindowText(GetLanguageStringACP("MapVisibleSize"));
|
||||
GetDlgItem(IDC_LTHEATER)->SetWindowText(GetLanguageStringACP("MapTheater"));
|
||||
GetDlgItem(IDC_MAP_D_WIDTH)->SetWindowText(GetLanguageStringACP("MapWidth"));
|
||||
GetDlgItem(IDC_MAP_D_HEIGHT)->SetWindowText(GetLanguageStringACP("MapHeight"));
|
||||
GetDlgItem(IDC_CHANGELOCAL)->SetWindowText(GetLanguageStringACP("MapChange"));
|
||||
GetDlgItem(IDC_CHANGE)->SetWindowText(GetLanguageStringACP("MapChange"));
|
||||
}
|
||||
|
||||
void CMapD::OnChangelocal()
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -262,6 +262,24 @@ CScriptTypes::~CScriptTypes()
|
|||
{
|
||||
}
|
||||
|
||||
void CScriptTypes::UpdateStrings()
|
||||
{
|
||||
TranslateDlgItem(*this, IDC_ADD, "ScriptTypesAddScript");
|
||||
TranslateDlgItem(*this, IDC_DELETE, "ScriptTypesDelScript");
|
||||
|
||||
TranslateDlgItem(*this, IDC_SCTIPTTYPE_INRO, "ScriptTypesDesc");
|
||||
TranslateDlgItem(*this, IDC_SCRIPTTYPE_TYPE, "ScriptTypesSelectedScript");
|
||||
TranslateDlgItem(*this, IDC_SCRIPTTYPE_NAME, "ScriptTypesName");
|
||||
TranslateDlgItem(*this, IDC_SCRIPTTYPE_ACTIONS, "ScriptTypesActions");
|
||||
TranslateDlgItem(*this, IDC_SCRIPTTYPE_ACTIONTYPE, "ScriptTypesActionType");
|
||||
TranslateDlgItem(*this, IDC_PDESC, "ScriptTypesActionParam");
|
||||
TranslateDlgItem(*this, IDC_SCRIPTTYPE_DESC, "ScriptTypesActionDesc");
|
||||
TranslateDlgItem(*this, IDC_ADDACTION, "ScriptTypesAddAction");
|
||||
TranslateDlgItem(*this, IDC_DELETEACTION, "ScriptTypesDelAction");
|
||||
|
||||
TranslateWindowCaption(*this, "ScriptsCaption");
|
||||
}
|
||||
|
||||
void CScriptTypes::DoDataExchange(CDataExchange* pDX)
|
||||
{
|
||||
CDialog::DoDataExchange(pDX);
|
||||
|
@ -715,6 +733,8 @@ BOOL CScriptTypes::OnInitDialog()
|
|||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
UpdateStrings();
|
||||
|
||||
while (m_Type.DeleteString(0) != CB_ERR);
|
||||
|
||||
|
||||
|
|
|
@ -51,14 +51,13 @@ public:
|
|||
CListBox m_Action;
|
||||
CString m_Name;
|
||||
//}}AFX_DATA
|
||||
|
||||
|
||||
// Überschreibungen
|
||||
// Der Klassen-Assistent generiert virtuelle Funktionsüberschreibungen
|
||||
//{{AFX_VIRTUAL(CScriptTypes)
|
||||
protected:
|
||||
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV-Unterstützung
|
||||
//}}AFX_VIRTUAL
|
||||
void UpdateStrings();
|
||||
|
||||
// Implementierung
|
||||
protected:
|
||||
|
|
|
@ -69,29 +69,18 @@ END_MESSAGE_MAP()
|
|||
/////////////////////////////////////////////////////////////////////////////
|
||||
// Behandlungsroutinen für Nachrichten CTerrainDlg
|
||||
|
||||
void CTerrainDlg::OnOK()
|
||||
{
|
||||
// stub
|
||||
}
|
||||
|
||||
void CTerrainDlg::OnCancel()
|
||||
{
|
||||
DestroyWindow();
|
||||
}
|
||||
|
||||
BOOL CTerrainDlg::OnInitDialog()
|
||||
{
|
||||
//CDialogBar::OnInitDialog();
|
||||
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
void CTerrainDlg::PostNcDestroy()
|
||||
{
|
||||
//delete this;
|
||||
//CDialog::PostNcDestroy();
|
||||
}
|
||||
|
||||
void CTerrainDlg::TranslateUI()
|
||||
{
|
||||
TranslateDlgItem(*this, IDD_TERRAINBAR_TG, "TerrainDlgTerrainGround");
|
||||
TranslateDlgItem(*this, IDD_TERRAINBAR_OS, "TerrainDlgOverlaySpecial");
|
||||
}
|
||||
|
||||
void CTerrainDlg::OnSelchangeTileset()
|
||||
{
|
||||
//while(m_Type.DeleteString(0)!=CB_ERR);
|
||||
|
|
|
@ -42,7 +42,7 @@ public:
|
|||
//{{AFX_DATA(CTerrainDlg)
|
||||
enum { IDD = IDD_TERRAINBAR };
|
||||
//}}AFX_DATA
|
||||
|
||||
void TranslateUI();
|
||||
|
||||
// Überschreibungen
|
||||
// Vom Klassen-Assistenten generierte virtuelle Funktionsüberschreibungen
|
||||
|
@ -59,9 +59,6 @@ protected:
|
|||
|
||||
// Generierte Nachrichtenzuordnungsfunktionen
|
||||
//{{AFX_MSG(CTerrainDlg)
|
||||
virtual void OnOK();
|
||||
virtual void OnCancel();
|
||||
virtual BOOL OnInitDialog();
|
||||
afx_msg void OnSelchangeTileset();
|
||||
afx_msg void OnSelchangeOverlay();
|
||||
//}}AFX_MSG
|
||||
|
|
|
@ -65,6 +65,7 @@ void CTileSetBrowserFrame::PostNcDestroy()
|
|||
BOOL CTileSetBrowserFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext)
|
||||
{
|
||||
((CDialogBar*)&m_bar)->Create(this, IDD_TERRAINBAR, CBRS_TOP, 5);
|
||||
m_bar.TranslateUI();
|
||||
m_bar.ShowWindow(SW_SHOW);
|
||||
CRect r;
|
||||
GetClientRect(r);
|
||||
|
|
|
@ -27,6 +27,7 @@
|
|||
#include "FinalSunDlg.h"
|
||||
#include "mapdata.h"
|
||||
#include "variables.h"
|
||||
#include "functions.h"
|
||||
|
||||
#ifdef _DEBUG
|
||||
#define new DEBUG_NEW
|
||||
|
@ -68,6 +69,11 @@ END_MESSAGE_MAP()
|
|||
|
||||
|
||||
|
||||
void CToolSettingsBar::TranslateUI()
|
||||
{
|
||||
TranslateDlgItem(*this, IDC_STATIC, "ToolSettingsBarBrushSize");
|
||||
}
|
||||
|
||||
void CToolSettingsBar::OnSelchangeBrushsize()
|
||||
{
|
||||
|
||||
|
@ -122,19 +128,23 @@ void CToolSettingsBar::OnSelchangeBrushsize()
|
|||
((CFinalSunDlg*)theApp.m_pMainWnd)->m_view.m_isoview->m_BrushSize_y = by;
|
||||
}
|
||||
|
||||
BOOL CToolSettingsBar::OnInitDialog()
|
||||
// never called
|
||||
#if 0
|
||||
void CToolSettingsBar::OnInitialUpdate()
|
||||
{
|
||||
CDialogBar::OnInitialUpdate();
|
||||
|
||||
m_BrushSize = 0;
|
||||
UpdateData(FALSE);
|
||||
|
||||
((CComboBox*)GetDlgItem(IDC_BRUSHSIZE))->SetCurSel(0);
|
||||
|
||||
return TRUE; // return TRUE unless you set the focus to a control
|
||||
// EXCEPTION: OCX-Eigenschaftenseiten sollten FALSE zurückgeben
|
||||
}
|
||||
#endif
|
||||
|
||||
void CToolSettingsBar::OnShowWindow(BOOL bShow, UINT nStatus)
|
||||
{
|
||||
TranslateUI();
|
||||
|
||||
CDialogBar::OnShowWindow(bShow, nStatus);
|
||||
|
||||
UpdateData(FALSE);
|
||||
|
|
|
@ -52,11 +52,14 @@ protected:
|
|||
|
||||
// Implementierung
|
||||
protected:
|
||||
void TranslateUI();
|
||||
|
||||
// Generierte Nachrichtenzuordnungsfunktionen
|
||||
//{{AFX_MSG(CToolSettingsBar)
|
||||
afx_msg void OnSelchangeBrushsize();
|
||||
virtual BOOL OnInitDialog();
|
||||
#if 0
|
||||
afx_msg void OnInitialUpdate();
|
||||
#endif
|
||||
afx_msg void OnShowWindow(BOOL bShow, UINT nStatus);
|
||||
//}}AFX_MSG
|
||||
DECLARE_MESSAGE_MAP()
|
||||
|
|
|
@ -91,6 +91,15 @@ BOOL CTriggerEditorDlg::OnInitDialog()
|
|||
{
|
||||
CDialog::OnInitDialog();
|
||||
|
||||
CString curCaption;
|
||||
GetWindowText(curCaption);
|
||||
SetWindowText(TranslateStringACP(curCaption));
|
||||
SetDlgItemText(IDC_STATIC, GetLanguageStringACP("TriggerDesc"));
|
||||
SetDlgItemText(IDC_NEWTRIGGER, GetLanguageStringACP("TriggerNew"));
|
||||
SetDlgItemText(IDC_DELETETRIGGER, GetLanguageStringACP("TriggerDelete"));
|
||||
SetDlgItemText(IDC_PLACEONMAP, GetLanguageStringACP("TriggerPlaceOnMap"));
|
||||
SetDlgItemText(IDC_CLONE, GetLanguageStringACP("TriggerClone"));
|
||||
|
||||
m_tab.InsertItem(0, TranslateStringACP("Trigger options"));
|
||||
m_tab.InsertItem(1, TranslateStringACP("Events"));
|
||||
m_tab.InsertItem(2, TranslateStringACP("Actions"));
|
||||
|
|
|
@ -280,6 +280,12 @@ BOOL CTriggerOptionsDlg::OnInitDialog()
|
|||
{
|
||||
CDialog::OnInitDialog();
|
||||
{
|
||||
SetDlgItemText(IDC_TRIGGER_OPTION_TYPE_STR, GetLanguageStringACP("TriggerOptionType"));
|
||||
SetDlgItemText(IDC_TRIGGER_OPTION_NAME, GetLanguageStringACP("TriggerOptionName"));
|
||||
SetDlgItemText(IDC_TRIGGER_OPTION_HOUSE, GetLanguageStringACP("TriggerOptionHouse"));
|
||||
SetDlgItemText(IDC_TRIGGER_OPTION_ATTACHED_TRIGGER, GetLanguageStringACP("TriggerOptionAttachedTrigger"));
|
||||
SetDlgItemText(IDC_TRIGGER_OPTION_TRIGGER_DIS_TIP, GetLanguageStringACP("TriggerOptionDisableTip"));
|
||||
|
||||
m_tooltip.Create(this);
|
||||
m_tooltip.Activate(TRUE);
|
||||
m_tooltip.AddTool(GetDlgItem(IDC_HOUSE), GetLanguageStringACP("TT_TriggerHouse"));
|
||||
|
|
|
@ -510,6 +510,12 @@ SAVEDLG_FILETYPES=TS maps|*.mpr%8*.map|TS multi maps|*.mpr|TS single maps|*.map|
|
|||
; tool tip strings
|
||||
TT_TriggerHouse=Defines the house the trigger applies to
|
||||
|
||||
Undo=Undo (Ctrl+Z)
|
||||
Redo=Redo (Ctrl+Y)
|
||||
Copy=Copy (Ctrl+C)
|
||||
Paste=Paste (Ctrl+V)
|
||||
Manual=Manual (F1)
|
||||
|
||||
; error strings for map validation
|
||||
MV_NoMap=This is no map
|
||||
MV_NoBasic=Basic settings don´t exist
|
||||
|
@ -1110,7 +1116,78 @@ CG_IDP_FILE_CORRUPT=提示文件语法错误
|
|||
TipDialogNext=下一提示
|
||||
TipDialogShowAtStartup=启动时显示
|
||||
TipDialogClose=关闭
|
||||
TipDialogCaption=每日一贴
|
||||
TipDialogCaption=您知道吗
|
||||
|
||||
; menu strings
|
||||
File=文件
|
||||
New=新建 Ctrl + N
|
||||
Open=打开 Ctrl + O
|
||||
Save=保存 Ctrl + S
|
||||
Save as=另存为
|
||||
Check map=检查错误
|
||||
Quit=关闭程序
|
||||
|
||||
Edit=编辑
|
||||
Undo Ctrl+Z=撤销 Ctrl + Z
|
||||
Redo Ctrl+Y=重做 Ctrl + Y
|
||||
Manual F1=帮助菜单 F1
|
||||
Copy Ctrl+C=复制 Ctrl + C
|
||||
Copy whole map=复制整张地图
|
||||
Paste Ctrl+V=粘贴 Ctrl + V
|
||||
Paste centered=居中粘贴
|
||||
Map=地图属性
|
||||
Basic=基础设置
|
||||
Special flags=特殊设置
|
||||
Lighting=光照设置
|
||||
Singleplayer settings=单人模式设置
|
||||
Houses=参战方设置
|
||||
Local variables (Locals)=局部变量设置
|
||||
Trigger editor=事件触发
|
||||
Tag editor=触发标签
|
||||
Scripts=小队脚本
|
||||
Taskforces=成员组
|
||||
Teams=小队选项
|
||||
AI Triggers=AI触发
|
||||
AI Trigger enabling=AI触发允许清单
|
||||
INI editing=地图INI规则
|
||||
|
||||
Terrain=地形
|
||||
Raise ground=抬升地表
|
||||
Lower ground=降低地表
|
||||
Flatten ground=自动平整地表
|
||||
Hide tileset=隐藏关联地形块
|
||||
Show every tileset=显示关联地形块
|
||||
Hide single field=隐藏单元格
|
||||
Show all fields=显示全部地形块
|
||||
Raise single tile (Be careful!)=抬升单个单元格(谨慎!)
|
||||
Lower single tile (Be careful!)=降低单个单元格(谨慎!)
|
||||
ToolSettingsBarBrushSize=笔刷尺寸:
|
||||
|
||||
Map tools=工具
|
||||
Change map height=修改地表高度
|
||||
Autocreate shores=自动生成海岸线
|
||||
Auto level using cliffs=自动调整悬崖地表高度
|
||||
Paint cliff front=绘制悬崖前部
|
||||
Paint cliff back=绘制悬崖后部
|
||||
Search Waypoint=查找路径点
|
||||
Tool Scripts=工具脚本
|
||||
|
||||
Options=选项
|
||||
Settings=设置
|
||||
Show minimap=显示缩略地图
|
||||
Easy mode=精简模式
|
||||
Sounds=开启音效
|
||||
Show Building Outline=显示建筑轮廓
|
||||
Disable AutoShore CTRL-A=禁止自动产生海岸 Ctrl + A
|
||||
Disable AutoLat CTRL-L=禁止自动地表交界 Ctrl + A
|
||||
Disable Slope Correction=禁用斜坡修正
|
||||
Smooth zoom=平滑缩放
|
||||
Use default mouse cursor=使用默认鼠标指针
|
||||
|
||||
Help=帮助
|
||||
Info=关于
|
||||
Tip of the day=每日提示
|
||||
Show logs=查看日志
|
||||
|
||||
; main dialog strings
|
||||
MainDialogCaption=%9
|
||||
|
@ -1188,12 +1265,16 @@ BasicInitTime=初始化时间:
|
|||
BasicAddOnNeeded=附加数据:
|
||||
|
||||
; mapinfo dialog
|
||||
Map Properties=地图属性
|
||||
MapDesc=通用地图属性:
|
||||
MapSizeFrame=地图尺寸
|
||||
MapSize=整个地图的尺寸,由 MapPack 使用。
|
||||
MapVisibleSizeFrame=可见区域
|
||||
MapVisibleSize=地图的可见区域。格式:左, 上, 宽, 高。
|
||||
MapTheater=地图类型:
|
||||
MapWidth=宽度:
|
||||
MapHeight=高度:
|
||||
MapChange=应用更改
|
||||
|
||||
; singleplayer basics dialog
|
||||
SingleplayerDesc=单人地图的附加设置。
|
||||
|
@ -1211,6 +1292,7 @@ SingleplayerPostScore=评分屏之后:
|
|||
SingleplayerPreMapSelect=预地图选择:
|
||||
|
||||
; houses dialog
|
||||
Countries=参战方
|
||||
HousesDesc=参战方(国家)指不同的游戏者,AI和人类。如果是多人地图,在这里不要建立任何参战方!如果是单人地图,并且未设置参战方,首先单击[标准参战方],如果需要可添加新参战方,然后选择人类玩家的参战方(不要忘记选中[游戏者控制])!
|
||||
HousesPlayerHouse=人类玩家参战方:
|
||||
HousesHouse=当前参战方:
|
||||
|
@ -1249,6 +1331,33 @@ LoadInitDDraw=初始化 Direct Draw 6 ...
|
|||
LoadInitPics=正在载入图像...
|
||||
LoadExtractStdMixFiles=正在打开 std.mix 文件(可能需要一些时间)
|
||||
|
||||
; trigger editor
|
||||
TriggerDesc=选择当前触发:
|
||||
TriggerName=nam
|
||||
TriggerNew=新建
|
||||
TriggerPlaceOnMap=放置单元标记
|
||||
TriggerClone=复制
|
||||
TriggerDelete=删除
|
||||
TriggerOptionType=类型(会同步至全部关联标记)
|
||||
TriggerOptionName=名称:
|
||||
TriggerOptionHouse=所属方:
|
||||
TriggerOptionAttachedTrigger=关联的触发
|
||||
TriggerOptionDisableTip=被禁止的触发必须由其它触发激活后才能继续运作
|
||||
|
||||
; team scripts
|
||||
ScriptTypesAddScript=添加
|
||||
ScriptTypesDelScript=删除
|
||||
ScriptsCaption=小队脚本
|
||||
ScriptTypesDesc=脚本类型允许你定义如一作战小队从一个路径点移动到另一路径点。一个脚本类型与小队类型相关联(不是特遣部队!)\n欲应用模板,请在下拉列表里选中一个预置模板,然后点击“新建”。\n如果预置列表里啥都没有,可以点击“刷新”以重新载入。
|
||||
ScriptTypesSelectedScript=脚本类型:
|
||||
ScriptTypesName=名称:
|
||||
ScriptTypesActions=行为:
|
||||
ScriptTypesActionType=行为类型:
|
||||
ScriptTypesActionParam=行为参数:
|
||||
ScriptTypesAddAction=添加
|
||||
ScriptTypesDelAction=删除
|
||||
ScriptTypesActionDesc=说明:
|
||||
|
||||
; iso view
|
||||
IsoCaption=地图视图
|
||||
|
||||
|
@ -1398,46 +1507,6 @@ InfP5=允许AI重组::
|
|||
; Now some translations from english to the used language (used for some combo-boxes, menus/listviews and of course unit names)
|
||||
; currently used for: menu, iso-view status bar, unit/building/stuff list, overlay browser, terrain browser
|
||||
|
||||
|
||||
; FA2:YR
|
||||
FinalAlert 2(tm) Fansite link=%9 Fansite link
|
||||
FinalAlert 2(tm) Forum=%9 Forum
|
||||
|
||||
[English-TranslationsRA2]
|
||||
Tiberium=Ore
|
||||
Run Tiberian Sun=Run Red Alert 2
|
||||
Tiberium Tree=Ore mine
|
||||
Countries=Houses; For the edit->houses dialog
|
||||
FinalSun Homepage=FinalAlert Homepage
|
||||
FinalSun support forum=FinalAlert support forum
|
||||
AutoCreate shores=Automatically create shore (AutoShore)
|
||||
Tiberium (Blue)=Ore
|
||||
Tiberium (Green)=Ore
|
||||
|
||||
[English-Translations]
|
||||
; tooltips
|
||||
Make terrain flat=Flatten ground
|
||||
Raise a single tile=Raise single field (Not recommended!)
|
||||
Lower a single tile=Lower single field (Not recommended!)
|
||||
AutoCreate shores=Automatically create shore (only supported in FinalAlert)
|
||||
Autocreate shores=Automatically create shore (AutoShore)
|
||||
AutoLevel terrain height using cliffs=AutoLevel ground height using cliffs
|
||||
Auto level using cliffs=AutoLevel ground height using cliffs
|
||||
|
||||
; other
|
||||
Bridge 1=Bridge topleft-bottomright
|
||||
Bridge 2=Bridge bottomleft-topright
|
||||
Railroad Bridge 1=Railroad bridge topleft-bottomright
|
||||
Railroad Bridge 2=Railroad bridge bottomleft-topright
|
||||
Wood Bridge 1=Wood bridge topleft-bottomright
|
||||
Wood Bridge 2=Wood bridge bottomleft-topright
|
||||
Easy mode=Beginner mode
|
||||
|
||||
; FA2:YR
|
||||
FinalAlert 2(tm) Fansite link=%9 Fansite link
|
||||
FinalAlert 2(tm) Forum=%9 Forum
|
||||
|
||||
[Chinese-TranslationsRA2]
|
||||
Tiberium=矿石
|
||||
Run Tiberian Sun=运行尤里的复仇
|
||||
Tiberium Tree=矿井
|
||||
|
@ -1448,15 +1517,19 @@ AutoCreate shores=自动建立海滨(自动海滨)
|
|||
Tiberium (Blue)=蓝色矿石
|
||||
Tiberium (Green)=绿色矿石
|
||||
|
||||
[Chinese-Translations]
|
||||
; tooltips
|
||||
Heighten ground (slope logic)=抬高地块(自动斜坡)
|
||||
Lower ground (slope logic)=降低地块(自动斜坡)
|
||||
Show all tilesets=显示所有隐藏地块
|
||||
Switch Framework Mode=切换框架模式显示
|
||||
Make terrain flat=平整地面
|
||||
Raise a single tile=升高单个区域(不推荐)
|
||||
Lower a single tile=降低单个区域(不推荐)
|
||||
AutoCreate shores=自动建立海岸线(只在 FinalAlert 中支持)
|
||||
Autocreate shores=自动建立海岸(自动海岸)
|
||||
Autocreate shores=自动产生海岸
|
||||
AutoLevel terrain height using cliffs=自动调整设置悬崖的地表高度
|
||||
Auto level using cliffs=自动调整设置悬崖的地表高度
|
||||
TerrainDlgTerrainGround=地形/地表:
|
||||
TerrainDlgOverlaySpecial=覆盖物/特殊:
|
||||
|
||||
; other
|
||||
Bridge 1=桥梁 左上-右下
|
||||
|
@ -1850,6 +1923,46 @@ Vehicles=机动部队
|
|||
Factories=工厂
|
||||
Base defenses=防御类建筑
|
||||
|
||||
; FA2:YR
|
||||
FinalAlert 2(tm) Fansite link=%9 Fansite link
|
||||
FinalAlert 2(tm) Forum=%9 Forum
|
||||
|
||||
[English-TranslationsRA2]
|
||||
Tiberium=Ore
|
||||
Run Tiberian Sun=Run Red Alert 2
|
||||
Tiberium Tree=Ore mine
|
||||
Countries=Houses; For the edit->houses dialog
|
||||
FinalSun Homepage=FinalAlert Homepage
|
||||
FinalSun support forum=FinalAlert support forum
|
||||
AutoCreate shores=Automatically create shore (AutoShore)
|
||||
Tiberium (Blue)=Ore
|
||||
Tiberium (Green)=Ore
|
||||
|
||||
[English-Translations]
|
||||
; tooltips
|
||||
Make terrain flat=Flatten ground
|
||||
Raise a single tile=Raise single field (Not recommended!)
|
||||
Lower a single tile=Lower single field (Not recommended!)
|
||||
AutoCreate shores=Automatically create shore (only supported in FinalAlert)
|
||||
Autocreate shores=Automatically create shore (AutoShore)
|
||||
AutoLevel terrain height using cliffs=AutoLevel ground height using cliffs
|
||||
Auto level using cliffs=AutoLevel ground height using cliffs
|
||||
|
||||
; other
|
||||
Bridge 1=Bridge topleft-bottomright
|
||||
Bridge 2=Bridge bottomleft-topright
|
||||
Railroad Bridge 1=Railroad bridge topleft-bottomright
|
||||
Railroad Bridge 2=Railroad bridge bottomleft-topright
|
||||
Wood Bridge 1=Wood bridge topleft-bottomright
|
||||
Wood Bridge 2=Wood bridge bottomleft-topright
|
||||
Easy mode=Beginner mode
|
||||
|
||||
; FA2:YR
|
||||
FinalAlert 2(tm) Fansite link=%9 Fansite link
|
||||
FinalAlert 2(tm) Forum=%9 Forum
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -401,57 +401,70 @@ CString TranslateStringVariables(int n, const char* originaltext, const char* in
|
|||
strcat(seekedstring, c);
|
||||
|
||||
CString orig = originaltext;
|
||||
if (orig.Find(seekedstring) < 0) return orig;
|
||||
if (orig.Find(seekedstring) < 0) {
|
||||
return orig;
|
||||
}
|
||||
|
||||
orig.Replace(seekedstring, inserttext);
|
||||
|
||||
return orig;
|
||||
}
|
||||
|
||||
// retrieve the string name in the correct language (name is an ID).
|
||||
CString GetLanguageStringACP(CString name)
|
||||
const CString* getLanguageString(const CString& key)
|
||||
{
|
||||
#ifdef RA2_MODE
|
||||
auto const strRA2Sec = theApp.m_Options.LanguageName + "-StringsRA2";
|
||||
if (auto const& translated = language.GetSection(strRA2Sec).TryGetString(name)) {
|
||||
return ToACP(*translated);
|
||||
if (auto const& translated = language.GetSection(strRA2Sec).TryGetString(key)) {
|
||||
return translated;
|
||||
}
|
||||
if (auto const& def = language.GetSection("English-StringsRA2").TryGetString(name)) {
|
||||
return ToACP(*def);
|
||||
// fallback to english
|
||||
if (auto const& def = language.GetSection("English-StringsRA2").TryGetString(key)) {
|
||||
return def;
|
||||
}
|
||||
#endif
|
||||
// last try
|
||||
auto const defSec = theApp.m_Options.LanguageName + "-Strings";
|
||||
auto const translated = language.GetSection(defSec).TryGetString(name);
|
||||
if (!translated) {
|
||||
CString s = language.GetSection("English-Strings").GetStringOr(name, name);
|
||||
if (auto const& def = language.GetSection(defSec).TryGetString(key)) {
|
||||
return def;
|
||||
}
|
||||
// last try
|
||||
return language.GetSection("English-Strings").TryGetString(key);
|
||||
}
|
||||
|
||||
CString escapeString(const CString& input)
|
||||
{
|
||||
auto updated = input;
|
||||
if (updated.Find("\\n")) {
|
||||
updated.Replace("\\n", "\n");
|
||||
}
|
||||
return updated;
|
||||
}
|
||||
|
||||
// retrieve the string name in the correct language (name is an ID).
|
||||
CString GetLanguageStringACP(const CString name)
|
||||
{
|
||||
#ifndef RA2_MODE
|
||||
s = TranslateStringVariables(9, s, "FinalSun");
|
||||
auto const pStrToInsert = "FinalSun";
|
||||
#elif YR_MODE
|
||||
auto const pStrToInsert = "FinalAlert 2: Yuri's Revenge";
|
||||
#else
|
||||
#ifdef YR_MODE
|
||||
s = TranslateStringVariables(9, s, "FinalAlert 2: Yuri's Revenge");
|
||||
#else
|
||||
s = TranslateStringVariables(9, s, "FinalAlert 2");
|
||||
auto const pStrToInsert = "FinalAlert 2";
|
||||
#endif
|
||||
#endif
|
||||
return ToACP(s);
|
||||
|
||||
auto translated = getLanguageString(name);
|
||||
if (!translated) {
|
||||
CString encoded = name;
|
||||
encoded = TranslateStringVariables(9, encoded, pStrToInsert);
|
||||
return ToACP(encoded);
|
||||
}
|
||||
|
||||
CString s;
|
||||
s = *translated;
|
||||
CString encoded;
|
||||
encoded = *translated;
|
||||
|
||||
#ifndef RA2_MODE
|
||||
if (s.Find("%9") >= 0) s = TranslateStringVariables(9, s, "FinalSun");
|
||||
#else
|
||||
#ifdef YR_MODE
|
||||
if (s.Find("%9") >= 0) s = TranslateStringVariables(9, s, "FinalAlert 2: Yuri's Revenge");
|
||||
#else
|
||||
if (s.Find("%9") >= 0) s = TranslateStringVariables(9, s, "FinalAlert 2");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
return ToACP(s);
|
||||
if (encoded.Find("%9") >= 0) {
|
||||
encoded = TranslateStringVariables(9, encoded, pStrToInsert);
|
||||
}
|
||||
return ToACP(encoded);
|
||||
}
|
||||
|
||||
CString TranslateStringACP(WCHAR* u16EnglishString)
|
||||
|
@ -469,7 +482,21 @@ CString TranslateStringACP(CString u8EnglishString)
|
|||
return GetLanguageStringACP(u8EnglishString);
|
||||
}
|
||||
|
||||
void TranslateDlgItem(CWnd& cwnd, int controlID, const CString& label)
|
||||
{
|
||||
auto const translated = getLanguageString(label);
|
||||
if (translated) {
|
||||
cwnd.SetDlgItemText(controlID, escapeString(*translated));
|
||||
}
|
||||
}
|
||||
|
||||
void TranslateWindowCaption(CWnd& cwnd, const CString& label)
|
||||
{
|
||||
auto const translated = getLanguageString(label);
|
||||
if (translated) {
|
||||
cwnd.SetWindowText(escapeString(*translated));
|
||||
}
|
||||
}
|
||||
|
||||
void TruncSpace(string& str)
|
||||
{
|
||||
|
|
|
@ -125,7 +125,7 @@ char* strcpy_safe(char* strDestination, const char* strSource);
|
|||
|
||||
// retrieve the string name in the correct language (name is an ID).
|
||||
// the returned string is in the active codepage (UTF-8 on Windows 10 1909+)
|
||||
CString GetLanguageStringACP(CString name);
|
||||
CString GetLanguageStringACP(const CString name);
|
||||
|
||||
// tranlate a string/word by using the table from english to the current language
|
||||
// the returned string is in the active codepage (UTF-8 on Windows 10 1909+)
|
||||
|
@ -135,6 +135,9 @@ CString TranslateStringACP(CString u8EnglishString);
|
|||
// the returned string is in the active codepage (UTF-8 on Windows 10 1909+)
|
||||
CString TranslateStringACP(WCHAR* u16EnglishString);
|
||||
|
||||
void TranslateDlgItem(CWnd& cwnd, int controlID, const CString& label);
|
||||
void TranslateWindowCaption(CWnd& cwnd, const CString& label);
|
||||
|
||||
/****************************************
|
||||
sound functions [03/16/2001]
|
||||
****************************************/
|
||||
|
|
|
@ -513,6 +513,21 @@
|
|||
#define IDC_LICENSE_AND_COPYRIGHT 1461
|
||||
#define IDC_PREFER_LOCAL_THEATER_INI_FILES 1462
|
||||
#define IDC_PREFER_LOCAL_THEATER_FILES 1463
|
||||
#define IDC_TRIGGER_OPTION_TYPE_STR 1464
|
||||
#define IDC_TRIGGER_OPTION_NAME 1465
|
||||
#define IDC_TRIGGER_OPTION_HOUSE 1466
|
||||
#define IDC_TRIGGER_OPTION_ATTACHED_TRIGGER 1467
|
||||
#define IDC_TRIGGER_OPTION_TRIGGER_DIS_TIP 1468
|
||||
#define IDC_MAP_D_WIDTH 1469
|
||||
#define IDC_MAP_D_HEIGHT 1470
|
||||
#define IDC_SCTIPTTYPE_INRO 1471
|
||||
#define IDC_SCRIPTTYPE_TYPE 1472
|
||||
#define IDC_SCRIPTTYPE_NAME 1473
|
||||
#define IDC_SCRIPTTYPE_ACTIONS 1474
|
||||
#define IDC_SCRIPTTYPE_ACTIONTYPE 1475
|
||||
#define IDC_SCRIPTTYPE_DESC 1476
|
||||
#define IDD_TERRAINBAR_TG 1477
|
||||
#define IDD_TERRAINBAR_OS 1478
|
||||
#define ID_FILE_OPENMAP 40001
|
||||
#define ID_FILE_SAVEAS 40002
|
||||
#define ID_FILE_QUIT 40003
|
||||
|
|
Loading…
Add table
Reference in a new issue