<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Locale SYSTEM 'locale.dtd'>
<!--***********************************************************
 * 
 * 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.
 * 
 ***********************************************************-->
<Locale versionDTD="2.0.3" allowUpdateFromCLDR="yes" version="1.2">
  <LC_INFO>
    <Language>
      <LangID>fr</LangID>
      <DefaultName>French</DefaultName>
    </Language>
    <Country>
      <CountryID>MC</CountryID>
      <DefaultName>Monaco</DefaultName>
    </Country>
  </LC_INFO>
  <LC_CTYPE ref="fr_FR"/>
  <LC_FORMAT ref="fr_FR" replaceTo="[$F-180C]"/>
  <LC_COLLATION ref="fr_FR"/>
  <LC_SEARCH ref="en_US"/>
  <LC_INDEX ref="fr_FR"/>
  <LC_CALENDAR ref="fr_FR"/>
  <LC_CURRENCY ref="fr_FR"/>
  <LC_TRANSLITERATION ref="en_US"/>
  <LC_MISC ref="fr_FR"/>
  <LC_NumberingLevel ref="en_US"/>
  <LC_OutLineNumberingLevel ref="en_US"/>
</Locale>

