If you want to enable Language Fallback you must add patch or this file must exist /App_Config/Include/Sitecore.LanguageFallback.config
or any custom config that include the settings.
<configuration xmlns:patch="http://www.sitecore.net/xmlconfig/">
<sitecore>
<settings>
<setting name="LanguageFieldFallback.AllowVaryFallbackSettingsPerLanguage">
<patch:attribute name="value">false</patch:attribute>
</setting>
</settings>
<sites>
<!--Enable Item level language fallback - Allows a item to completely fall back to another language-->
<!--Enable Field level language fallback - Allows control at the field level where only selected fields fall back to another language-->
<site name="website">
<patch:attribute name="enableItemLanguageFallback">true</patch:attribute>
<patch:attribute name="enableFieldLanguageFallback">true</patch:attribute>
<patch:attribute name="enforceVersionPresence">true</patch:attribute>
</site>
<site name="shell">
<patch:attribute name="enableItemLanguageFallback">true</patch:attribute>
<patch:attribute name="enableFieldLanguageFallback">true</patch:attribute>
</site>
</sites>
</sitecore>
</configuration>
Also you should check the checkboxes on Template field level. Note that upon checking the 'Enable field level fallback' it is not necessary to manually tick this checkbox for each of the content node as this is a shared file under Advance section of Standard Fields.
You can verify that the language fallback is activated by checking the 'Enable Item Fallback' field in an item.
The value of this field gets inherited as any other field within the active language. This also means you can override this setting on items if needed.
I prepared aspx pages for enable language fallback.
Field Level:
<%@ Page Language="C#" AutoEventWireup="true" %>
<%@ Import Namespace="Sitecore" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Sitecore Template Field Level Lang Fall Back Setup</title>
</head>
<body>
<%
using (new Sitecore.SecurityModel.SecurityDisabler())
{
var db = Sitecore.Configuration.Factory.GetDatabase("master");
// Field Template Fields
var items = db.SelectItems("fast:/sitecore/templates/User Defined//*");
foreach (var item in items)
{
item.Editing.BeginEdit();
item.Fields["Enable Shared Language Fallback"].Value = "1";
item.Fields["Enable Language Fallback"].Value = "1";
item.Editing.EndEdit();
Response.Write(item.Paths.FullPath + " - OK" + "<br/>");
}
}
%>
Item Level:
<%@ Page Language="C#" AutoEventWireup="true" %>
<%@ Import Namespace="Sitecore" %>
<%@ Import Namespace="Sitecore.Data.Items" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>Sitecore Template Item Level Lang Fall Back Setup</title>
</head>
<body>
<%
using (new Sitecore.SecurityModel.SecurityDisabler())
{
var db = Sitecore.Configuration.Factory.GetDatabase("master");
// Item Template Tempalte
var items = db.SelectItems("fast:/sitecore/templates/User Defined//*");
foreach (var item in items)
{
var standardValuesItem = item.Children.FirstOrDefault(x => x.Name == "__Standard Values");
if (standardValuesItem != null)
{
if (standardValuesItem.Fields["__Enable item fallback"].Value != "1")
{
standardValuesItem.Editing.BeginEdit();
standardValuesItem.Fields["__Enable item fallback"].Value = "1";
standardValuesItem.Editing.EndEdit();
Response.Write(standardValuesItem.Paths.FullPath + " - OK" + "<br/>");
}
}
else
{
var standartValues = ((TemplateItem) item).CreateStandardValues();
standartValues.Editing.BeginEdit();
standartValues.Fields["__Enable item fallback"].Value = "1";
standartValues.Editing.EndEdit();
Response.Write(standartValues.Paths.FullPath + " - OK" + "<br/>");
}
}
}
%>