#  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.

[egg_info]
tag_build = dev
tag_date = 0
tag_svn_revision = true

[sdist]
formats = gztar,bztar,ztar,tar,zip

[extract_messages]
add_comments = TRANSLATOR:
copyright_holder = Apache Software Foundation
msgid_bugs_address = dev@bloodhound.apache.org
output_file = multiproduct/locale/messages.pot
keywords = _ ngettext:1,2 N_ tag_ tagn_:1,2 Option:4 BoolOption:4 IntOption:4 ListOption:6 ExtensionOption:5 PathOption:4
no-wrap = true

[init_catalog]
input_file = multiproduct/locale/messages.pot
output_dir = multiproduct/locale
domain = multiproduct

[compile_catalog]
directory = multiproduct/locale
domain = multiproduct

[update_catalog]
input_file = multiproduct/locale/messages.pot
output_dir = multiproduct/locale
domain = multiproduct
