Skip to content

Commit f5d4993

Browse files
committed
Missing StartPage files for HD...
1 parent 4df14df commit f5d4993

File tree

2 files changed

+351
-0
lines changed

2 files changed

+351
-0
lines changed
Lines changed: 154 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,154 @@
1+
/**
2+
* Locale strings for different languages.
3+
*/
4+
var locale = new Object();
5+
6+
/**
7+
* Locale strings for English.
8+
*/
9+
locale["en_US.mainLinkHome"] = "Home";
10+
locale["en_US.mainLinkDocs"] = "Documentation";
11+
locale["en_US.mainLinkNotes"] = "Release Notes";
12+
locale["en_US.mainLinkAbout"] = "About";
13+
locale["en_US.createNewProject"] = "New Project...";
14+
locale["en_US.openProjectDialog"] = "Open Project...";
15+
locale["en_US.recentProjectsTitle"] = "Recent Projects";
16+
locale["en_US.loadingRecentProjects"] = "Loading recent projects...";
17+
locale["en_US.recentProjectsNotFound"] = "No recent projects found.";
18+
locale["en_US.versionInfoTitle"] = "Latest Version";
19+
locale["en_US.loadingVersionInfo"] = "Loading version info...";
20+
locale["en_US.versionInfoNotAvailable"] = "Version info not available.";
21+
locale["en_US.yourVersionIsOutOfDate"] = "Your version ({0}) is out of date.";
22+
locale["en_US.downloadVersionHere"] = "Download here!";
23+
locale["en_US.loadingRssFeed"] = "Loading RSS feed...";
24+
locale["en_US.rssFeedNotAvailable"] = "RSS feed not available.";
25+
locale["en_US.projectTypeFDP"] = "Unable to determine";
26+
locale["en_US.projectTypeAS2"] = "ActionScript 2 Project";
27+
locale["en_US.projectTypeAS3"] = "ActionScript 3 Project";
28+
locale["en_US.projectTypeGeneric"] = "Generic Project";
29+
locale["en_US.projectTypeHaxe"] = "Haxe Project";
30+
locale["en_US.projectTypeLoom"] = "Loom Project";
31+
locale["en_US.projectTypeUnknown"] = "Unknown";
32+
locale["en_US.tooltipTextModified"] = "Modified:";
33+
locale["en_US.tooltipTextCreated"] = "Created:";
34+
locale["en_US.tooltipTextType"] = "Type:";
35+
36+
/**
37+
* Locale strings for Japanese.
38+
*/
39+
locale["ja_JP.mainLinkHome"] = "ホーム";
40+
locale["ja_JP.mainLinkDocs"] = "ドキュメント";
41+
locale["ja_JP.mainLinkNotes"] = "リリースノート";
42+
locale["ja_JP.mainLinkAbout"] = "HaxeDevelop について";
43+
locale["ja_JP.createNewProject"] = "新規プロジェクト...";
44+
locale["ja_JP.openProjectDialog"] = "プロジェクトを開く...";
45+
locale["ja_JP.recentProjectsTitle"] = "最近開いたプロジェクト";
46+
locale["ja_JP.loadingRecentProjects"] = "最近開いたプロジェクトを読込中...";
47+
locale["ja_JP.recentProjectsNotFound"] = "最近開いたプロジェクトはありません。";
48+
locale["ja_JP.versionInfoTitle"] = "最新版";
49+
locale["ja_JP.loadingVersionInfo"] = "バージョン情報を読込中...";
50+
locale["ja_JP.versionInfoNotAvailable"] = "バージョン情報はありません.";
51+
locale["ja_JP.yourVersionIsOutOfDate"] = "お使いの HaxeDevelop ({0}) は古いバージョンです。";
52+
locale["ja_JP.downloadVersionHere"] = "ダウンロード";
53+
locale["ja_JP.loadingRssFeed"] = "フィードを読込中...";
54+
locale["ja_JP.rssFeedNotAvailable"] = "フィードはありません。";
55+
locale["ja_JP.projectTypeFDP"] = "FDP プロジェクト";
56+
locale["ja_JP.projectTypeAS2"] = "ActionScript 2 プロジェクト";
57+
locale["ja_JP.projectTypeAS3"] = "ActionScript 3 プロジェクト";
58+
locale["ja_JP.projectTypeGeneric"] = "ジェネリックプロジェクト";
59+
locale["ja_JP.projectTypeHaxe"] = "Haxe プロジェクト";
60+
locale["ja_JP.projectTypeLoom"] = "Loom プロジェクト";
61+
locale["ja_JP.projectTypeUnknown"] = "不明";
62+
locale["ja_JP.tooltipTextModified"] = "変更:";
63+
locale["ja_JP.tooltipTextCreated"] = "作成:";
64+
locale["ja_JP.tooltipTextType"] = "タイプ:";
65+
66+
/**
67+
* Locale strings for German.
68+
*/
69+
locale["de_DE.mainLinkHome"] = "Projektseite";
70+
locale["de_DE.mainLinkDocs"] = "Dokumentation";
71+
locale["de_DE.mainLinkNotes"] = "Ausgabe-Informationen";
72+
locale["de_DE.mainLinkAbout"] = "Über";
73+
locale["de_DE.createNewProject"] = "Neues Projekt...";
74+
locale["de_DE.openProjectDialog"] = "Projekt öffnen...";
75+
locale["de_DE.recentProjectsTitle"] = "Letzte Projekte";
76+
locale["de_DE.loadingRecentProjects"] = "Lade letzte Projekte...";
77+
locale["de_DE.recentProjectsNotFound"] = "Keine Projekte gefunden.";
78+
locale["de_DE.versionInfoTitle"] = "Neueste Version";
79+
locale["de_DE.loadingVersionInfo"] = "Lade Versions-Info...";
80+
locale["de_DE.versionInfoNotAvailable"] = "Versions-Info nicht verfügbar.";
81+
locale["de_DE.yourVersionIsOutOfDate"] = "Deine Version ({0}) ist veraltet.";
82+
locale["de_DE.downloadVersionHere"] = "Hier downloaden!";
83+
locale["de_DE.loadingRssFeed"] = "Lade RSS feed...";
84+
locale["de_DE.rssFeedNotAvailable"] = "RSS feed nicht verfügbar.";
85+
locale["de_DE.projectTypeFDP"] = "Nicht bestimmbar";
86+
locale["de_DE.projectTypeAS2"] = "ActionScript 2 Projekt";
87+
locale["de_DE.projectTypeAS3"] = "ActionScript 3 Projekt";
88+
locale["de_DE.projectTypeGeneric"] = "Generische Projekt";
89+
locale["de_DE.projectTypeHaxe"] = "Haxe Projekt";
90+
locale["de_DE.projectTypeLoom"] = "Loom Projekt";
91+
locale["de_DE.projectTypeUnknown"] = "Unbekannt";
92+
locale["de_DE.tooltipTextModified"] = "Verändert:";
93+
locale["de_DE.tooltipTextCreated"] = "Erstellt:";
94+
locale["de_DE.tooltipTextType"] = "Typ:";
95+
96+
/**
97+
* Locale strings for Euskara.
98+
*/
99+
locale["eu_ES.mainLinkHome"] = "Hasiera";
100+
locale["eu_ES.mainLinkDocs"] = "Dokumentazioa";
101+
locale["eu_ES.mainLinkNotes"] = "Argitaratze oharrak";
102+
locale["eu_ES.mainLinkAbout"] = "Honi buruz";
103+
locale["eu_ES.createNewProject"] = "Proiektu berria...";
104+
locale["eu_ES.openProjectDialog"] = "Proiektua ireki...";
105+
locale["eu_ES.recentProjectsTitle"] = "Azken proiektuak";
106+
locale["eu_ES.loadingRecentProjects"] = "Azken proiektuak kargatzen...";
107+
locale["eu_ES.recentProjectsNotFound"] = "Ez da azken proiekturik aurkitu.";
108+
locale["eu_ES.versionInfoTitle"] = "Azken bertsioa";
109+
locale["eu_ES.loadingVersionInfo"] = "Bertioaren informazioa kargatzen...";
110+
locale["eu_ES.versionInfoNotAvailable"] = "Bertsioaren informazioa ez dago eskuragarri.";
111+
locale["eu_ES.yourVersionIsOutOfDate"] = "Zure ({0}) bertsioa ez dago eguneratua.";
112+
locale["eu_ES.downloadVersionHere"] = "Deskargatu hemen!";
113+
locale["eu_ES.loadingRssFeed"] = "RSS-ak kargatzen...";
114+
locale["eu_ES.rssFeedNotAvailable"] = "RSS-ak ez daude eskuragarri.";
115+
locale["eu_ES.projectTypeFDP"] = "Ezin da zehaztu";
116+
locale["eu_ES.projectTypeAS2"] = "ActionScript 2 Proiektua";
117+
locale["eu_ES.projectTypeAS3"] = "ActionScript 3 Proiektua";
118+
locale["eu_ES.projectTypeGeneric"] = "Proiektu orokorra";
119+
locale["eu_ES.projectTypeHaxe"] = "Haxe Proiektua";
120+
locale["eu_ES.projectTypeLoom"] = "Loom Proiektua";
121+
locale["eu_ES.projectTypeUnknown"] = "Ezezaguna";
122+
locale["eu_ES.tooltipTextModified"] = "Aldatua:";
123+
locale["eu_ES.tooltipTextCreated"] = "Sortua:";
124+
locale["eu_ES.tooltipTextType"] = "Mota:";
125+
126+
/**
127+
* Locale strings for Chinese.
128+
*/
129+
locale["zh_CN.mainLinkHome"] = "首页";
130+
locale["zh_CN.mainLinkDocs"] = "文档";
131+
locale["zh_CN.mainLinkNotes"] = "发布说明";
132+
locale["zh_CN.mainLinkAbout"] = "关于";
133+
locale["zh_CN.createNewProject"] = "新建工程...";
134+
locale["zh_CN.openProjectDialog"] = "打开工程...";
135+
locale["zh_CN.recentProjectsTitle"] = "最近的工程";
136+
locale["zh_CN.loadingRecentProjects"] = "加载最近的工程...";
137+
locale["zh_CN.recentProjectsNotFound"] = "无最近的工程.";
138+
locale["zh_CN.versionInfoTitle"] = "最新版本";
139+
locale["zh_CN.loadingVersionInfo"] = "加载版本信息...";
140+
locale["zh_CN.versionInfoNotAvailable"] = "无版本信息.";
141+
locale["zh_CN.yourVersionIsOutOfDate"] = "你的版本 ({0}) 太老了.";
142+
locale["zh_CN.downloadVersionHere"] = "点此下载!";
143+
locale["zh_CN.loadingRssFeed"] = "加载RSS订阅...";
144+
locale["zh_CN.rssFeedNotAvailable"] = "无RSS订阅.";
145+
locale["zh_CN.projectTypeFDP"] = "无法确定";
146+
locale["zh_CN.projectTypeAS2"] = "ActionScript 2 工程";
147+
locale["zh_CN.projectTypeAS3"] = "ActionScript 3 工程";
148+
locale["zh_CN.projectTypeGeneric"] = "普通工程";
149+
locale["zh_CN.projectTypeHaxe"] = "Haxe 工程";
150+
locale["zh_CN.projectTypeLoom"] = "Loom 工程";
151+
locale["zh_CN.projectTypeUnknown"] = "未知";
152+
locale["zh_CN.tooltipTextModified"] = "修改:";
153+
locale["zh_CN.tooltipTextCreated"] = "创建:";
154+
locale["zh_CN.tooltipTextType"] = "类型:";
Lines changed: 197 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,197 @@
1+
/**
2+
* Templates used by the start page.
3+
*/
4+
var rssFeedItemTemplate = "<h3 class=\"rssItemTitle\"><a href=\"javascript:window.external.ShowURL('{1}');\">{0}</a></h3><span class=\"rssItemContent\">{2}</span>";
5+
var projectItemTemplate = "<li onclick=\"javascript:window.external.OpenProject('{1}');\" title=\"{1} ({2})\">{0}</li>";
6+
var tooltipTextTemplate = "{0}<br /><b>" + getLocaleString("tooltipTextType") + "</b> {1}<br /><b>" + getLocaleString("tooltipTextCreated") + "</b> {2}<br /><b>" + getLocaleString("tooltipTextModified") + "</b> {3}";
7+
var versionAvailableTemplate = "<button onclick=\"window.open('{1}');\" class=\"button\"><b>{0}:</b> " + getLocaleString("downloadVersionHere") + "</button>";
8+
var versionOutOfDateTemplate = "<p>" + getLocaleString("yourVersionIsOutOfDate") + "</p>";
9+
var versionNotAvailableTemplate = "<p>" + getLocaleString("versionInfoNotAvailable") + "</p>";
10+
11+
/**
12+
* Parses XML document from string.
13+
*/
14+
function parseXmlDocument(xml)
15+
{
16+
var parser = new ActiveXObject("Microsoft.XMLDOM");
17+
parser.async = "false";
18+
parser.loadXML(xml);
19+
return parser;
20+
}
21+
22+
/**
23+
* Downloads text document from url.
24+
*/
25+
function loadTextDocument(url, callback)
26+
{
27+
var loader = new ActiveXObject("Microsoft.XMLHTTP");
28+
loader.onreadystatechange = function()
29+
{
30+
if (loader.readyState == 4)
31+
{
32+
callback(loader.responseText, loader.status);
33+
}
34+
};
35+
loader.open("GET", url, true);
36+
loader.send(null);
37+
}
38+
39+
/**
40+
* Parses the recent project xml document.
41+
*/
42+
function handleProjectXml(xml)
43+
{
44+
var html = "";
45+
var projects = new Array();
46+
var nodes = xml.getElementsByTagName("RecentProject");
47+
if (nodes.length === 0) html = getLocaleString("recentProjectsNotFound");
48+
for (var i = 0; i < nodes.length; i++)
49+
{
50+
var name = getNodeText(nodes[i].getElementsByTagName("Name"));
51+
var type = getNodeText(nodes[i].getElementsByTagName("Type"));
52+
var path = getNodeText(nodes[i].getElementsByTagName("Path")).replace(/\\/g, "\\\\");
53+
var created = getNodeText(nodes[i].getElementsByTagName("Created"));
54+
var modified = getNodeText(nodes[i].getElementsByTagName("Modified"));
55+
var typeDesc = getProjectType(type); // Description of project file type...
56+
html += formatString(projectItemTemplate, name, addSlashes(path), typeDesc);
57+
}
58+
var element = document.getElementById("projectsContent");
59+
element.innerHTML = "<ul>" + html + "</ul>";
60+
}
61+
62+
function addSlashes(s)
63+
{
64+
return s.split("'").join("\\'");
65+
}
66+
67+
/**
68+
* Parses the rss feed xml document.
69+
*/
70+
function handleRssFeedXml(text, status)
71+
{
72+
var html = "";
73+
var xml = parseXmlDocument(text);
74+
if (status == 200)
75+
{
76+
var items = new Array();
77+
var xmlItems = xml.getElementsByTagName("item");
78+
var xmlTitle = getNodeText(xml.getElementsByTagName("title"));
79+
document.getElementById("rssTitle").innerHTML = xmlTitle;
80+
for (var i = 0; i < xmlItems.length; i++)
81+
{
82+
var title = getNodeText(xmlItems[i].getElementsByTagName("title"));
83+
var link = getNodeText(xmlItems[i].getElementsByTagName("link")).replace(/\\/g, "\\\\");
84+
var desc = getNodeText(xmlItems[i].getElementsByTagName("description"));
85+
html += formatString(rssFeedItemTemplate, title, link, desc);
86+
//if (i != xmlItems.length - 1) html += "<hr />";
87+
}
88+
}
89+
else
90+
{
91+
html = getLocaleString("rssFeedNotAvailable");
92+
}
93+
var element = document.getElementById("rssContent");
94+
element.innerHTML = html;
95+
}
96+
97+
/**
98+
* Safe text extraction
99+
*/
100+
function getNodeText(nodes)
101+
{
102+
if (nodes == null) return ""; //"#ERR#1";
103+
if (nodes.length == 0) return ""; //"#ERR#2";
104+
if (nodes[0].firstChild == null) return ""; //"#ERR#3";
105+
return nodes[0].firstChild.nodeValue;
106+
}
107+
108+
/**
109+
* Handles the downloaded version info.
110+
*/
111+
function handleVersionInfo(text, status)
112+
{
113+
var html = "";
114+
if (status == 200)
115+
{
116+
var info = text.split("\r\n");
117+
var version = decodeURIComponent(getUrlParameter("v"));
118+
html = formatString(versionAvailableTemplate, info[0], info[1]);
119+
if (version && ((info[0] < version) - (version < info[0])) == -1)
120+
{
121+
html += formatString(versionOutOfDateTemplate, version);
122+
}
123+
}
124+
else html = versionNotAvailableTemplate;
125+
var element = document.getElementById("versionContent");
126+
element.innerHTML = html;
127+
}
128+
129+
/**
130+
* Gets the localized text for the id.
131+
*/
132+
function getLocaleString(id)
133+
{
134+
var lang = getUrlParameter("l") || "en_US";
135+
return locale[lang + "." + id] || id;
136+
}
137+
138+
/**
139+
* Gets the type of the project file.
140+
*/
141+
function getProjectType(extension)
142+
{
143+
switch (extension)
144+
{
145+
case ".fdp" : return getLocaleString("projectTypeFDP");
146+
case ".as2proj" : return getLocaleString("projectTypeAS2");
147+
case ".as3proj" : return getLocaleString("projectTypeAS3");
148+
case ".fdproj" : return getLocaleString("projectTypeGeneric");
149+
case ".hxproj" : return getLocaleString("projectTypeHaxe");
150+
case ".lsproj" : return getLocaleString("projectTypeLoom");
151+
default : return getLocaleString("projectTypeUnknown");
152+
}
153+
}
154+
155+
/**
156+
* Gets the value of the specified url parameter.
157+
*/
158+
function getUrlParameter(id)
159+
{
160+
id = id.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
161+
var regex = new RegExp("[?&]" + id + "=([^&#]*)");
162+
var results = regex.exec(unescape(window.location.href));
163+
if (results == null) return "";
164+
else return results[1];
165+
}
166+
167+
/**
168+
* Formats the string with the specified arguments.
169+
*/
170+
function formatString(text)
171+
{
172+
var result = text;
173+
for (var i = 1; i < arguments.length; i++)
174+
{
175+
var pattern = "{" + (i - 1) + "}";
176+
while (result.indexOf(pattern) >= 0)
177+
{
178+
result = result.replace(pattern, arguments[i]);
179+
}
180+
}
181+
return result;
182+
}
183+
184+
/**
185+
* Handles the data sent by FlashDevelop.
186+
*/
187+
function handleXmlData(projectXml, rssUrl)
188+
{
189+
if (rssUrl != null)
190+
{
191+
var fd3Url = "http://www.flashdevelop.org/latest.txt";
192+
loadTextDocument(fd3Url, handleVersionInfo);
193+
loadTextDocument(rssUrl, handleRssFeedXml);
194+
}
195+
var xml = parseXmlDocument(projectXml);
196+
handleProjectXml(xml);
197+
}

0 commit comments

Comments
 (0)