Hi, someone asked me about missing lang keys regarding a plugin they purchased and the developer has long since left oxwall and does not reply to support requests. I posted on that support forum but i wanted to share this here as well to help those that need help.
When you see lang key value on a site page instead of the actual text on a plugin something like this:
pluginname+admin_tab_general_title
most of the time you can contact the dev and they will fix the issue and that is that.
But what happens when you buy a plugin and there are tons of lang keys missing and the dev has just released an update recently or the dev has since "flew the coop" (vanished). Well there are some things you can try.
To spell this out here is the process that devs follow when updating the lang in a plugin.
If they have a new text variable, they create that variable in the language file using the dev-tools portion of admin section using this process
https://wiki.oxwall.com/faq:site_configuration:manage_languages?s[]=dev&s[]=tools
Then when the dev is done with that process they MUST remember to export their lang file for the plugin and then upload it to the server of their dev version and overwrite the langs.zip file. This will allow them to use the most current copy of the langs file on their dev copy.
They also need to remember to set the new import value for the new langs.zip file in the update folder of the update so that when a user updates they get the new lang.zip file imported to thier copy.
I suspect that the dev either forgot to include the lang.zip import command in their update folder file or they saved their dev copy without exporting the current lang.zip version and including it in their released copy.
Either way the solution is this:
1. open up the last update folder for the plugin and look inside the update.php file... there should be a command that looks like this:
OW::getLanguage()->importPluginLangs(OW::getPluginManager()->getPlugin('PLUGINNAME')->getRootDir().'update/NUMBER/langs.zip', 'PLUGINNAME');
PLUGINNAME is the name of your plugin... and the NUMBER is the number of the update folder... if the folder is named 7 then there should be a 7 for NUMBER
If that code is not in that file then add it... the plugin name should be in lowercase.
Make sure there is a langs.zip file in the update folder as well. If it is not there then you need to download a fresh copy of your plugin from the oxwall server and upload the langs.zip folder from the plugin root to the update folder.
Then uninstall the plugin and reinstall, clear your cache and you should now have the missing lang values.
If that code is there and it has the right number and plugin name, then that means that the dev forgot to update with the right copy of the langs.zip file... In this case the fix is somewhat longer....
First i would download the plugin from your plugins list, then i would take the langs.zip file from the root of the plugin download and stick it into the update folder and also overwrite the langs.zip file in the plugin root on the server as well.
To be cliear here, when an update is issued on a plugin the plugin root langs.zip file and the update folder (number of release) langs.zip file should be the most current version of those files. So from your downloaded latest copy just overwrite both those locations.
There should be two files in the update folder, update.php and langs.zip Just overwrite the langs.zip in the update folder with the one in the plugin root.... The reason is that its possible that the dev updated the root langs.zip folder but forgot to copy it over to the update folder.
If that does not work then your stuck with creating the lang key values yourself using the
dev-tools process. Youll need to guess what the text should say and then add the lang key for that lang code using dev-tools. But remember you need to do the same as the dev should have when you are done adding... export the lang file and upload it to the root plugin folder and update folder
I hope this helps.... sorry you all have to deal with this from that dev that decided to just leave and no longer support their product.
Dave :)