When you’re faced with a problem to solve (and frankly, who isn’t
  these days?), the basic strategy usually taken by we computer people
  is called “divide and conquer.” It goes like this:
- Conceptualize the specific problem as a set of smaller sub-problems.
- Solve each smaller problem.
- Combine the results into a solution of the specific problem. 
But “divide and conquer” is not the only possible strategy. We can also take a more generalist approach:
- Conceptualize the specific problem as a special case of a more general problem.
- Somehow solve the general problem.
- Adapt the solution of the general problem to the specific problem.
- Eric Lippert
I believe many solutions already exist for this problem in server-side languages such as ASP.Net/C#. 
I've outlined some of the major aspects of the problem
ex. res.de.js, res.fr.js, res.en.js, res.js(for default language)
- Issue: Resource files for each page should be separated so we only get the data we need - Solution: We can use some tools that already exist like
https://github.com/rgrove/lazyload 
- Issue: We need a key/value pair structure to save our data - Solution: I suggest a javascript object instead of string/string air.
We can benefit from the intellisense from an IDE 
- Issue: General members should be stored in a public file and all pages should access them - Solution: For this purpose I make a folder in the root of web application called  Global_Resources and a folder to store global file for each sub folders we named it 'Local_Resources' 
- Issue: Each subsystems/subfolders/modules member should override the Global_Resources members on their scope - Solution: I considered a file for each 
Application Structure
root/
    Global_Resources/
        default.js
        default.fr.js
    UserManagementSystem/
        Local_Resources/
            default.js
            default.fr.js
            createUser.js
        Login.htm
        CreateUser.htm
The corresponding code for the files:
Global_Resources/default.js
var res = {
    Create : "Create",
    Update : "Save Changes",
    Delete : "Delete"
};
Global_Resources/default.fr.js
var res = {
    Create : "créer",
    Update : "Enregistrer les modifications",
    Delete : "effacer"
};
The resource file for the desired language should be loaded on the page selected from Global_Resource - This should be the first file that is loaded on all the pages.
UserManagementSystem/Local_Resources/default.js
res.Name = "Name";
res.UserName = "UserName";
res.Password = "Password";
UserManagementSystem/Local_Resources/default.fr.js
res.Name = "nom";
res.UserName = "Nom d'utilisateur";
res.Password = "Mot de passe";
UserManagementSystem/Local_Resources/createUser.js
// Override res.Create on Global_Resources/default.js
res.Create = "Create User"; 
UserManagementSystem/Local_Resources/createUser.fr.js
// Override Global_Resources/default.fr.js
res.Create = "Créer un utilisateur";
manager.js file (this file should be load last)
res.lang = "fr";
var globalResourcePath = "Global_Resources";
var resourceFiles = [];
var currentFile = globalResourcePath + "\\default" + res.lang + ".js" ;
if(!IsFileExist(currentFile))
    currentFile = globalResourcePath + "\\default.js" ;
if(!IsFileExist(currentFile)) throw new Exception("File Not Found");
resourceFiles.push(currentFile);
// Push parent folder on folder into folder
foreach(var folder in parent folder of current page)
{
    currentFile = folder + "\\Local_Resource\\default." + res.lang + ".js";
    if(!IsExist(currentFile))
        currentFile = folder + "\\Local_Resource\\default.js";
    if(!IsExist(currentFile)) throw new Exception("File Not Found");
    resourceFiles.push(currentFile);
}
for(int i = 0; i < resourceFiles.length; i++) { Load.js(resourceFiles[i]); }
// Get current page name
var pageNameWithoutExtension = "SomePage";
currentFile = currentPageFolderPath + pageNameWithoutExtension + res.lang + ".js" ;
if(!IsExist(currentFile))
    currentFile = currentPageFolderPath + pageNameWithoutExtension + ".js" ;
if(!IsExist(currentFile)) throw new Exception("File Not Found");
Hope it helps :)