diff --git a/src/js/libpannellum.js b/src/js/libpannellum.js index f07f469..a3112b5 100644 --- a/src/js/libpannellum.js +++ b/src/js/libpannellum.js @@ -42,6 +42,9 @@ function Renderer(container) { var pose; var image, imageType, dynamic; var texCoordBuffer, cubeVertBuf, cubeVertTexCoordBuf, cubeVertIndBuf; + // based on ISO 639-1: https://en.wikipedia.org/wiki/List_of_ISO_639-1_codes + // defaults to 'en' => english + var languageCode; /** * Initialize renderer. @@ -59,16 +62,20 @@ function Renderer(container) { * @param {number} vaov - Initial vertical angle of view. * @param {number} voffset - Initial vertical offset angle. * @param {function} callback - Load callback function. - * @param {Object} [params] - Other configuration parameters (`horizonPitch`, `horizonRoll`, `backgroundColor`). + * @param {Object} [params] - Other configuration parameters (`horizonPitch`, `horizonRoll`, `backgroundColor`, `languageCode`). */ this.init = function(_image, _imageType, _dynamic, haov, vaov, voffset, callback, params) { + // set language code for localized strings + // defaults to english if not set! + languageCode = params.languageCode ? params.languageCode : 'en'; + // Default argument for image type if (typeof _imageType === undefined) _imageType = 'equirectangular'; if (_imageType != 'equirectangular' && _imageType != 'cubemap' && _imageType != 'multires') { - console.log('Error: invalid image type specified!'); + console.log(STRINGS.ERROR_INVALID_IMG_TYPE[languageCode]); throw {type: 'config error'}; } @@ -225,7 +232,7 @@ function Renderer(container) { return; } else if (!gl) { - console.log('Error: no WebGL support detected!'); + console.log(STRINGS.ERROR_NO_WEBGL[languageCode]); throw {type: 'no webgl'}; } if (image.basePath) { @@ -248,14 +255,14 @@ function Renderer(container) { width = Math.max(image.width, image.height); maxWidth = gl.getParameter(gl.MAX_TEXTURE_SIZE); if (width > maxWidth) { - console.log('Error: The image is too big; it\'s ' + width + 'px wide, but this device\'s maximum supported width is ' + maxWidth + 'px.'); + console.log(STRINGS.ERROR_IMG_TOO_BIG[languageCode] + " " + STRINGS.TEXT_IMG_SUPPORTED_WIDTH[languageCode] + maxWidth + "px."); throw {type: 'webgl size error', width: width, maxWidth: maxWidth}; } } else if (imageType == 'cubemap') { width = image[0].width; maxWidth = gl.getParameter(gl.MAX_CUBE_MAP_TEXTURE_SIZE); if (width > maxWidth) { - console.log('Error: The cube face image is too big; it\'s ' + width + 'px wide, but this device\'s maximum supported width is ' + maxWidth + 'px.'); + console.log(STRINGS.ERROR_CUBE_FACE_TOO_BIG[languageCode] + " " + STRINGS.TEXT_IMG_SUPPORTED_WIDTH[languageCode] + maxWidth + "px."); throw {type: 'webgl size error', width: width, maxWidth: maxWidth}; } } @@ -408,7 +415,7 @@ function Renderer(container) { // Check if there was an error var err = gl.getError(); if (err !== 0) { - console.log('Error: Something went wrong with WebGL!', err); + console.log(STRINGS.ERROR_WEBGL[languageCode], err); throw {type: 'webgl error'}; } @@ -1186,7 +1193,7 @@ function Renderer(container) { * @private */ function handleWebGLError1286() { - console.log('Reducing canvas size due to error 1286!'); + console.log(STRINGS.ERROR_WEBGL_1286[languageCode]); canvas.width = Math.round(canvas.width / 2); canvas.height = Math.round(canvas.height / 2); }