I understand very well how Alex's Partial Language Fallback tool works. I have recently posted a 10 blog series on the topic in sitecore's technical blog area. If you'd like to see the details about how to configure it and what all the configurations mean, please see this post: http://www.sitecore.net/Community/Technical-Blogs/Elizabeth-Spranzani/Posts/2014/03/Fallback-Series-Post-2.aspx
You are indeed correct, it is based on field fallback, not on the language version. You need to make sure you have the following:
- fallback enabled in the site node of BOTH the site you are using on the front end and the shell site.
- Both the web and master database referenced in the standardValues SupportedDatabases setting
- Enforce version presence setting in side node set to 'false' or set to 'true' and have the version created in your language
- The language you want to have fallback set to fallback to the main language in the system/languages section
- The field in the 'english' version of the template is has the 'enable fallback' checkbox checked.
- Publish the item in both language versions
You DON'T need to have different language versions of the templates, unless you have the Fallback.VaryFallbackSettingsPerLanguage in the config set to true. And I wouldn't recommend doing that, unless you want the field to fallback in some languages but not others. I haven't run into a scenario where that is necessary. But if you do decide to do this, you will need to make sure the checkbox is checked for every field in each language version.
I have a full working demo of the partial language fallback module here: https://github.com/Verndale-Corp/Sitecore-Fallback-FullDemo
Make sure to uncheck the Standard fields checkbox when in content editor, to see the 'fallback value' text show to indicate whether a field is falling back. Otherwise, it will just show 'standard values'.
Liz