diff options
-rw-r--r-- | wikipedia/PrebuiltArticlesPage.js | 6 | ||||
-rw-r--r-- | wikipedia/WikipediaWebView.js | 19 | ||||
-rw-r--r-- | wikipedia/presenters/domain_wiki_presenter.js | 8 | ||||
-rw-r--r-- | wikipedia/views/domain_wiki_view.js | 4 |
4 files changed, 32 insertions, 5 deletions
diff --git a/wikipedia/PrebuiltArticlesPage.js b/wikipedia/PrebuiltArticlesPage.js index 756fee6..5cd25e2 100644 --- a/wikipedia/PrebuiltArticlesPage.js +++ b/wikipedia/PrebuiltArticlesPage.js @@ -41,10 +41,14 @@ const PrebuiltArticlesPage = new Lang.Class({ context.add_class(EndlessWikipedia.STYLE_CLASS_ARTICLES_PAGE); }, - setShowableLinks: function(linked_articles){ + setShowableLinks: function(linked_articles) { this._wiki_view.setShowableLinks(linked_articles); }, + set_lang: function(lang) { + this._wiki_view.lang = lang; + }, + get article_title() { return this._article_title; }, diff --git a/wikipedia/WikipediaWebView.js b/wikipedia/WikipediaWebView.js index c942fbd..b5df01e 100644 --- a/wikipedia/WikipediaWebView.js +++ b/wikipedia/WikipediaWebView.js @@ -33,7 +33,12 @@ const WikipediaWebView = new Lang.Class({ 'Hide article links', 'A boolean to determine whether links should be shown', GObject.ParamFlags.READWRITE | GObject.ParamFlags.CONSTRUCT, - false) + false), + 'lang': GObject.ParamSpec.string('lang', + 'Language code', + 'Specifies the language to be used in this wiki webview', + GObject.ParamFlags.READWRITE | GObject.ParamFlags.CONSTRUCT, + "") }, _init: function(params) { @@ -71,13 +76,21 @@ const WikipediaWebView = new Lang.Class({ }, loadArticleByTitle: function(title) { - let params = {"title":title, "hideLinks":this.hide_links}; + let params = { + title: title, + hideLinks: this.hide_links, + lang: this.lang + }; let url = this._getFullURL(hostName + getPageByTitleURI, params); this.load_uri(url); }, loadArticleBySearchQuery: function(query) { - let params = {"query":query, "hideLinks":this.hide_links}; + let params = { + query: query, + hideLinks: this.hide_links, + lang: this.lang + }; let url = this._getFullURL(hostName + getPageByQueryURI, params); this.load_uri(url); }, diff --git a/wikipedia/presenters/domain_wiki_presenter.js b/wikipedia/presenters/domain_wiki_presenter.js index 2ddaa5d..3e34e1e 100644 --- a/wikipedia/presenters/domain_wiki_presenter.js +++ b/wikipedia/presenters/domain_wiki_presenter.js @@ -14,6 +14,12 @@ function _resourceUriToPath(uri) { throw new Error('Resource URI did not start with "resource://"'); } +function _pathnameToLanguage(uri) { + let parts = uri.split("/"); + let filename = parts[parts.length-1]; + return filename.substring(0, 2); +} + const DomainWikiPresenter = new Lang.Class({ Name: "DomainWikiPresenter", Extends: GObject.Object, @@ -53,7 +59,7 @@ const DomainWikiPresenter = new Lang.Class({ initAppInfoFromJsonFile: function(filename) { let app_content = JSON.parse(Utils.load_file_from_resource(filename)); - this._lang_code = filename.substring(0, 2); + this._domain_wiki_view.set_lang(_pathnameToLanguage(filename)); let categories = app_content['categories']; let cat_length = categories.length let category_models = new Array(); diff --git a/wikipedia/views/domain_wiki_view.js b/wikipedia/views/domain_wiki_view.js index ca0d6bd..e5ed378 100644 --- a/wikipedia/views/domain_wiki_view.js +++ b/wikipedia/views/domain_wiki_view.js @@ -179,6 +179,10 @@ const DomainWikiView = new Lang.Class({ this._article_view.article_uri = article.uri; }, + set_lang: function(lang) { + this._article_view.set_lang(lang); + }, + transition_page: function(transition_type, page_name){ this._window.page_manager.transition_type = transition_type; this._window.page_manager.visible_page_name = page_name; |