/**************************************************************
 * 
 * Licensed to the Apache Software Foundation (ASF) under one
 * or more contributor license agreements.  See the NOTICE file
 * distributed with this work for additional information
 * regarding copyright ownership.  The ASF licenses this file
 * to you under the Apache License, Version 2.0 (the
 * "License"); you may not use this file except in compliance
 * with the License.  You may obtain a copy of the License at
 * 
 *   http://www.apache.org/licenses/LICENSE-2.0
 * 
 * Unless required by applicable law or agreed to in writing,
 * software distributed under the License is distributed on an
 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 * KIND, either express or implied.  See the License for the
 * specific language governing permissions and limitations
 * under the License.
 * 
 *************************************************************/



Module gid_Module_Langpack_Basis_<LANGUAGE_>
    ParentID = gid_Module_Langpack_Root_<LANGUAGE_>;
    InstallOrder = "200";
    Sortkey = "50";
    Language = "<LANGUAGE>";
    Assigns = gid_Module_Langpack_Basis_Template;
    Name = "gid_Module_Langpack_Basis_<LANGUAGE_>";
    Description = "gid_Module_Langpack_Basis_<LANGUAGE_>";
    PackageInfo = "packinfo_office_lang.txt";
    Styles =(HIDDEN_ROOT, LANGUAGEMODULE);
End

Module gid_Module_Langpack_Resource_<LANGUAGE_>
    ParentID = gid_Module_Langpack_Root_<LANGUAGE_>;
    Sortkey = "100";
    Language = "<LANGUAGE>";
    Assigns = gid_Module_Langpack_Resource_Template;
    Name = "gid_Module_Langpack_Resource_<LANGUAGE_>";
    Description = "gid_Module_Langpack_Resource_<LANGUAGE_>";
    PackageInfo = "packinfo_office_lang.txt";
    Styles =(HIDDEN_ROOT, LANGUAGEMODULE);
End

Module gid_Module_Langpack_Help_<LANGUAGE_>
    ParentID = gid_Module_Langpack_Root_<LANGUAGE_>;
    Sortkey = "200";
    Language = "<LANGUAGE>";
    Assigns = gid_Module_Langpack_Help_Template;
    Name = "gid_Module_Langpack_Help_<LANGUAGE_>";
    Description = "gid_Module_Langpack_Help_<LANGUAGE_>";
    PackageInfo = "packinfo_office_lang.txt";
    Styles =(HIDDEN_ROOT, LANGUAGEMODULE);
End

Module gid_Module_Langpack_Fonts_<LANGUAGE_>
    ParentID = gid_Module_Langpack_Root_<LANGUAGE_>;
    Sortkey = "300";
    Language = "<LANGUAGE>";
    Assigns = gid_Module_Langpack_Fonts_Template;
    Name = "gid_Module_Langpack_Fonts_<LANGUAGE_>";
    Description = "gid_Module_Langpack_Fonts_<LANGUAGE_>";
    PackageInfo = "packinfo_office_lang.txt";
    Styles =(HIDDEN_ROOT, LANGUAGEMODULE);
End

Module gid_Module_Langpack_Brand_<LANGUAGE_>
    ParentID = gid_Module_Langpack_Root_<LANGUAGE_>;
    Sortkey = "400";
    InstallOrder = "1050";
    Language = "<LANGUAGE>";
    Assigns = gid_Module_Langpack_Brand_Template;
    Name = "gid_Module_Langpack_Brand_<LANGUAGE_>";
    Description = "gid_Module_Langpack_Brand_<LANGUAGE_>";
    PackageInfo = "packinfo_brand.txt";
    Styles =(HIDDEN_ROOT, LANGUAGEMODULE);
End
