Skip to content

Commit

Permalink
i18n support added
Browse files Browse the repository at this point in the history
  • Loading branch information
Jon-Salmon committed Mar 2, 2018
1 parent 5df92c2 commit 3b8eff5
Show file tree
Hide file tree
Showing 5 changed files with 155 additions and 27 deletions.
126 changes: 126 additions & 0 deletions app/_locales/en/messages.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,126 @@
{
"extensionName": {
"message": "View Image Resurrected",
"description": "Name of the extension."
},

"extensionDescription": {
"message": "Brings back the 'View Image' and 'Search by Image' options in google image search results, as well as adding copy and download options.",
"description": "Description of the extension."
},

"ViewImage": {
"message": "View Image",
"description": "View Image button on image results."
},

"copyImage": {
"message": "Copy Image",
"description": "Copy image button on image results (dropdown)"
},

"downloadImage": {
"message": "Download",
"description": "Download image button on image results (dropdown)"
},

"settings": {
"message": "Settings",
"description": "Text in settings button, if in dropdown."
},

"allSizes": {
"message": "All Sizes",
"description": "All Sizes link on image pages"
},

"searchByImage": {
"message": "Search by Image",
"description": "Search by Image link on image pages"
},

"copyFailed": {
"message": "Copy Failed",
"description": "Title of copy failure error popup."
},

"copyFailedMsg": {
"message": "Copying $TYPE$ images is not supported. \nDownload or use the right click context menu.",
"description": "Informs the user that the image type is unsupported for copying.",
"placeholders": {
"type" : {
"content" : "$1",
"example" : "png"
}
}
},




"settingsPrimary": {
"message": "Primary option",
"description": "Primary option header (settings page)"
},

"viewImageSetting": {
"message": "View Image",
"description": "View Image button on settings menu."
},

"copyImageSetting": {
"message": "Copy Image",
"description": "Copy image button on settings menu."
},

"downloadImageSetting": {
"message": "Download Image",
"description": "Download image button on settings menu."
},


"btnPlacement": {
"message": "Button Placement",
"description": "Button placement option header (settings page)"
},

"btnPlaceDefault": {
"message": "Recommended Default",
"description": "Default option for button placement (settings)."
},

"btnPlaceOrigional": {
"message": "Google's Original",
"description": "Origional option for button placement (settings)."
},




"settingBtnPlacement": {
"message": "Settings placement",
"description": "Settings button placement option header (settings page)"
},

"settingBtnSeperate": {
"message": "Seperate Button",
"description": "Default option for settings button placement (settings)."
},

"settingBtnDropdown": {
"message": "In Dropdown",
"description": "In dropdown option for settings button placement (settings)."
},



"settingsAdvHeader": {
"message": "Settings placement",
"description": "Advanced options header (settings page)"
},

"settingAdvNewTab": {
"message": "'View Image' opens in new tab",
"description": "Settings option for opening in new tabs."
}
}
4 changes: 2 additions & 2 deletions app/js/background.js
Original file line number Diff line number Diff line change
Expand Up @@ -39,8 +39,8 @@ chrome.runtime.onMessage.addListener(
default:
browser.notifications.create({
"type": "basic",
"title": "Copy Failed",
"message": "Copying " + x.type.split('/')[1] + " images are not supported. \nDownload or use the right click context menu."
"title": chrome.i18n.getMessage("copyFailed"),
"message": chrome.i18n.getMessage("copyFailedMsg", x.type.split('/')[1])
});
return;
}
Expand Down
40 changes: 20 additions & 20 deletions app/js/content-script.js
Original file line number Diff line number Diff line change
Expand Up @@ -26,16 +26,16 @@ function renderUI() {

// View image button
var view = `<a class="virLink" ` + (settings.newTab ? 'target="_blank"' : '') + `>
<span>View Image</span>
<span> ` + chrome.i18n.getMessage("viewImage") + `</span>
</a>`;
var copy = settings.copySupported ? `<a class="virCopyImage" ><span>Copy Image</span></a>` : '';
var save = `<a class="virSaveImage" ><span>Download</span></a>`;
var copy = settings.copySupported ? `<a class="virCopyImage" ><span>` + chrome.i18n.getMessage("copyImage") + `</span></a>` : '';
var save = `<a class="virSaveImage" ><span>` + chrome.i18n.getMessage("downloadImage") + `</span></a>`;

var settingElement = `<a class="virSettingsBtn">
<span class="_RKw _wtf _Rtf">
<svg focusable="false" xmlns="http://www.w3.org/2000/svg" style="vertical-align: middle;align-content: center;" viewBox="-20 0 580 500"><path d="M61.2,341.538c4.9,16.8,11.7,33,20.3,48.2l-24.5,30.9c-8,10.1-7.1,24.5,1.9,33.6l42.2,42.2c9.1,9.1,23.5,9.899,33.6,1.899 l30.7-24.3c15.8,9.101,32.6,16.2,50.1,21.2l4.6,39.5c1.5,12.8,12.3,22.4,25.1,22.4h59.7c12.8,0,23.6-9.601,25.1-22.4l4.4-38.1 c18.8-4.9,36.8-12.2,53.7-21.7l29.7,23.5c10.1,8,24.5,7.1,33.6-1.9l42.2-42.2c9.1-9.1,9.9-23.5,1.9-33.6l-23.1-29.3 c9.6-16.601,17.1-34.3,22.1-52.8l35.6-4.1c12.801-1.5,22.4-12.3,22.4-25.1v-59.7c0-12.8-9.6-23.6-22.4-25.1l-35.1-4.1 c-4.801-18.3-12-35.8-21.199-52.2l21.6-27.3c8-10.1,7.1-24.5-1.9-33.6l-42.1-42.1c-9.1-9.1-23.5-9.9-33.6-1.9l-26.5,21 c-17.2-10.1-35.601-17.8-54.9-23l-4-34.3c-1.5-12.8-12.3-22.4-25.1-22.4h-59.7c-12.8,0-23.6,9.6-25.1,22.4l-4,34.3 c-19.8,5.3-38.7,13.3-56.3,23.8l-27.5-21.8c-10.1-8-24.5-7.1-33.6,1.9l-42.2,42.2c-9.1,9.1-9.9,23.5-1.9,33.6l23,29.1 c-9.2,16.6-16.2,34.3-20.8,52.7l-36.8,4.2c-12.8,1.5-22.4,12.3-22.4,25.1v59.7c0,12.8,9.6,23.6,22.4,25.1L61.2,341.538z M277.5,180.038c54.4,0,98.7,44.3,98.7,98.7s-44.3,98.7-98.7,98.7c-54.399,0-98.7-44.3-98.7-98.7S223.1,180.038,277.5,180.038z"></path></svg>
</span>
` + (settings.settingPlacement == "menu" ? '<span class="_WKw">Settings</span>' : '') + `
` + (settings.settingPlacement == "menu" ? '<span class="_WKw">' + chrome.i18n.getMessage("settings") + '</span>' : '') + `
</a>`

var primary = '';
Expand Down Expand Up @@ -155,10 +155,10 @@ function renderUI() {
// Search by Image
var pages = document.body.querySelectorAll("div.irc_mmc .irc_hd ._r3");
template.innerHTML = `<span class="_r3 virAllSizes">
<a class="_ZR" href="#">All Sizes</a>
<a class="_ZR" href="#">` + chrome.i18n.getMessage("allSizes") + `</a>
</span>
<span class="_r3 customImageSearch">
<a class="_ZR">Search by Image</a>
<a class="_ZR">` + chrome.i18n.getMessage("searchByImage") + `</a>
</span>`;

var searchImg = template.content.childNodes;
Expand Down Expand Up @@ -201,43 +201,43 @@ function SettingsOpen() {
<div id="modalHeader">
<span class="close">&times;</span>
<img src="` + chrome.extension.getURL("icons/icon-96.png") + `" />
<h2>View Image Resurrected</h2>
<h2>` + chrome.i18n.getMessage("extensionName") + `</h2>
</div>
<div id="modalBody">
<div>
<div class="settingItem">
<h3>Primary option</h3>
<h3>` + chrome.i18n.getMessage("settingsPrimary") + `</h3>
<input type="radio" id="virPrimaryView" name="primary" value="view" ` + (settings.primary == "view" ? "checked" : "") + `>
<label for="virPrimaryView">View Image</label><br>
<label for="virPrimaryView">` + chrome.i18n.getMessage("viewImageSetting") + `</label><br>
` + (settings.copySupported ? `<input type="radio" id="virPrimaryCopy" name="primary" value="copy" ` + (settings.primary == "copy" ? "checked" : "") + `>
<label for="virPrimaryCopy">Copy Image</label><br>` : '') + `
<label for="virPrimaryCopy">` + chrome.i18n.getMessage("copyImageSetting") + `</label><br>` : '') + `
<input type="radio" id="virPrimarySave" name="primary" value="save" ` + (settings.primary == "save" ? "checked" : "") + `>
<label for="virPrimarySave">Download Image</label>
<label for="virPrimarySave">` + chrome.i18n.getMessage("copyImageSetting") + `</label>
</div>
<div class="settingItem">
<h3>Button placement</h3>
<h3>` + chrome.i18n.getMessage("btnPlacement") + `</h3>
<input type="radio" id="virPlacementDefault" name="placement" value="default" ` + (settings.placement == "default" ? "checked" : "") + `>
<label for="virPlacementDefault">Recommended Default</label><br>
<label for="virPlacementDefault">` + chrome.i18n.getMessage("btnPlaceDefault") + `</label><br>
<input type="radio" id="virPlacementTraditional" name="placement" value="traditional" ` + (settings.placement == "traditional" ? "checked" : "") + `>
<label for="virPlacementTraditional">Google's Original</label>
<label for="virPlacementTraditional">` + chrome.i18n.getMessage("btnPlaceOrigional") + `</label>
</div>
<div class="settingItem">
<h3>Settings placement</h3>
<h3>` + chrome.i18n.getMessage("settingBtnPlacement") + `</h3>
<input type="radio" id="virSetPlacementSep" name="settingPlacement" value="seperate" ` + (settings.settingPlacement == "seperate" ? "checked" : "") + `>
<label for="virSetPlacementSep">Seperate Button</label><br>
<label for="virSetPlacementSep">` + chrome.i18n.getMessage("settingBtnSeperate") + `</label><br>
<input type="radio" id="virSetPlacementMenu" name="settingPlacement" value="menu" ` + (settings.settingPlacement == "menu" ? "checked" : "") + `>
<label for="virSetPlacementMenu">In Dropdown</label>
<label for="virSetPlacementMenu">` + chrome.i18n.getMessage("settingBtnDropdown") + `</label>
</div>
<div class="settingItem">
<h3>Advanced option</h3>
<input id="cSettingsNewTab" name="newTab" type="checkbox" ` + (settings.newTab ? 'checked' : '') + `>'View Image' opens in new tab</input>
<h3>` + chrome.i18n.getMessage("settingsAdvHeader") + `</h3>
<input id="cSettingsNewTab" name="newTab" type="checkbox" ` + (settings.newTab ? 'checked' : '') + `>` + chrome.i18n.getMessage("settingAdvNewTab") + `</input>
</div>
</div>
Expand Down Expand Up @@ -415,4 +415,4 @@ var observer = new MutationObserver(domChanged);
observer.observe(document.body, {
attributes: true,
childList: true
});
});
6 changes: 3 additions & 3 deletions app/manifest.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
{

"description": "Brings back the 'View Image' and 'Search by Image' options in google image search results, as well as adding copy and download options.",
"description": "__MSG_extensionDescription__",
"manifest_version": 2,
"name": "View Image Resurrected",
"name": "__MSG_extensionName__",
"version": "1.9.1",
"permissions": [
"webRequest",
Expand All @@ -22,6 +21,7 @@
}
},

"default_locale": "en",
"background": {
"scripts": ["js/background.js"]
},
Expand Down
6 changes: 4 additions & 2 deletions gulpfile.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ var sass = require('gulp-sass');

gulp.task('copy', function() {
gulp.src('app/manifest.json')
.pipe(gulp.dest('build'))
.pipe(gulp.dest('build'));
gulp.src('app/_locales/**')
.pipe(gulp.dest('build/_locales'));
});

gulp.task('img', function() {
Expand All @@ -27,7 +29,7 @@ gulp.task('css', function() {
});

gulp.task('watch', function() {
gulp.watch('app/manifest.json', ['copy']);
gulp.watch(['app/manifest.json', 'app/_locales/**'], ['copy']);
gulp.watch('app/icons/*', ['img']);
gulp.watch('app/js/*', ['js']);
gulp.watch('app/css/*', ['css']);
Expand Down

0 comments on commit 3b8eff5

Please sign in to comment.