diff --git a/doc/lang/language-criteria.txt b/doc/lang/language-criteria.txt new file mode 100644 index 0000000000000000000000000000000000000000..9b76897533fa2c7a3c9bbf191db9b22171adef71 --- /dev/null +++ b/doc/lang/language-criteria.txt @@ -0,0 +1,492 @@ +Asterisk Soundfiles Submission Process v1.5 2009-09-01 +jtodd@digium.com + +The Asterisk project is looking for contributions of soundfiles to +expand the usefulness of Asterisk across as many languages as +possible. + +However, Digium is not able to maintain more than a few basic language +sets and the project relies upon the community for the many additional +languages which may be added to the soundfile list. To this end, the +following criteria are to enable the administrative and technical +inclusion of soundfiles in multiple languages. + +Criteria for language submission: + +1) Creative Commons Attribution-Share Alike 3.0 +(http://creativecommons.org/licenses/by-sa/3.0/us/) for all +soundfiles, and the actual artist who performs the prompts must be the +one who approves (in writing) the CCBYSAv3 license. Print out the +license, have the artist sign, and fax to Digium (+1-256-428-6061 +Attn: Contracts) or mail it to Digium (445 Jan Davis Dr Nw, +Huntsville, AL 35806, USA Attn: Contracts) + +2) You must duplicate all existing sounds that are currently in the +SVN trunk version of core-sounds-en.txt - no partial libraries. If +you are submitting sounds for extra-sounds, a full duplicate set of +the English prompts is not necessary, and alternate words may be +added. + +3) The artist who performed the original sounds must be available for +additional work at a "reasonable" market price, and contact data must +be provided with the sounds submission. + +4) Soundfiles must be in ".wav" 48kHz 16-bit signed linear format - +Digium will do all conversions to various codecs. + +5) A soundfile map must be included with all submissions, in the same +style as core-sounds-en.txt but for your specific language. This may +be derived from Step 6 in the "Process" section, below. + +6) Periodically and infrequently, there may be additional words added +to the English "core-sounds" repository. At such time as those words +are added, you would be responsible for submitting those additional +sounds in your submitted language by the same artist who performed the +recordings for the primary sounds, and creating an issue on +issues.asterisk.org containing the new sounds. + +7) If you duplicate the words/phrases in the current +core-sounds-en.txt file, this does NOT guarantee complete +functionality with your language. Notably, numbers and dates often +require additional work with code in various parts of Asterisk to +comply with specific language syntax issues. You are welcome to +create patches to fully support your language - see +issues.asterisk.org for more details of how to contribute code to +Asterisk. + +8) If you wish to update a sound set, any updates must be created by +the same artist that created the base sound set. + + +Process: + +Every time you submit sounds, even if partial sounds, you will need to +execute all of these steps. That includes #8 and #9 - each submission +requires a signed license from the actual artist, no matter how +trivial the file set. + +1) Create your language soundfile archive as a directory. Put all +soundfiles into the directory. + +2) Determine the two-digit ISO639-1 language code (en=english, +ru=russian, etc.) and replace the "xx" in other steps with this two +digit code. + +3) Determine the most obvious nation in which the dialect of the +artist is appropriate, if any. Select the country code from the +ISO-3166-1 list. Replace "_YY" in the other steps with this two digit +code. This two-digit code should be upper-case. + +4) Create a file called "CREDITS" and put in this file a short +free-form block of text that you wish to include for anyone who wants +to learn more about you or the artist who performed the sounds. +Please minimally include the name and contact information for the +artist as a URL and/or email address. + +Example: + bash-3.2# more CREDITS + Recorded by: + Allison Smith (http://www.theivrvoice.com) + + Financial Contributions by: Digium, Inc. (http://www.digium.com) + bash-3.2# + +5) Create a file called "LICENSE" and include the license text (listed +below these instructions) which are the Creative Commons +Attribution-ShareAlike v3 license terms. + +6) Ensure you have a .txt file that describes all of the soundfiles by +name and by textual description. UTF-8 is mandatory. See +"core-sounds-en.txt" as a template. Another option (possibly easier +and preferred) is to submit an OpenOffice ODS formatted spreadsheet +with three columns (Col 1: module name most associated with file, col 2: +filename in ASCII, col 3: text of soundfile in your localized language +- see doc/lang/*.ods for examples) and it will be converted during +import to UTF-8 format. + +7) Use "tar" to create a single file of your sounds and the three text +files. + +8) Create an account on http://issues.asterisk.org/ if you do not +already have one, and submit the file via that interface. In order to +eliminate confusion, you should also complete the license agreement on +that system, which is an electronic license agreement. You will +obtain an issue number from the issues.asterisk.org system - save this +number. + +9) Have the artist (NOT YOU, UNLESS YOU ARE THE ARTIST) sign a copy of +the Creative Commons license and send it to Digium (see contact data, +above.) Have the artist WRITE THE ISSUE NUMBER from step 8 on the +Creative Commons license agreement. This is mandatory for acceptance. + +10) Project staff will evaluate your sounds submission and communicate +with you via the issue maanger as to the progress and status of +inclusion. If your soundfiles are included, they will receive an +ordinal number according to the number of other archives in this +language/dialect group, a gender key, a freeform text description, the +codec for that file, and the version of Asterisk for which the files +were released. (Format for filenames suffix is: +languagecode[_territorycode[_gender[_variant]]] ) So your submission +may have an archive name that after processing looks like this: +"asterisk-core-sounds-en_US_female_allison-gsm-1.6.23" or +"asterisk-core-sounds-en_AU_male_alex-gsm-1.6.23" + + + + --- Print out everything below this block --- have artist sign, and + --- then fax or --- mail signed original to Digium legal --- + --- +1-256-428-6061 Attn: Contracts or --- 445 Jan Davis Dr Nw, + --- Huntsville, --- AL 35806, USA Attn: Contracts --- + +LICENSE FOR VOICE PROMPT FILES ------------------------------ + +The voice prompt files distributed herewith are Copyright (C) +2008-20[XX] [ARTIST NAME OR COPYRIGHT HOLDER NAME], and provided under +terms of the following License. For more information, or to purchase +custom voice prompt files, please visit: + + [URL or contact data for artist] + +I am releasing the listed recordings (delivered as sound files) as +being under the Creative Commons 3.0 Attribution/ShareAlike license, +as follows. + + [include list of files on printout] + + + Signed: __________________________________________________________ + + + Printed: __________________________________________________________ + Name + + Issue : _[see step 9 of "Process"]________________________________ + Number + + Date : __________________________________________________________ + + + +LICENSE ------- + +Creative Commons Legal Code + +Attribution 3.0 Unported + + CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT + PROVIDE LEGAL SERVICES. DISTRIBUTION OF THIS LICENSE DOES NOT + CREATE AN ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES + THIS INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO + WARRANTIES REGARDING THE INFORMATION PROVIDED, AND DISCLAIMS + LIABILITY FOR DAMAGES RESULTING FROM ITS USE. + +License + + THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS + CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK IS + PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW. ANY USE OF THE + WORK OTHER THAN AS AUTHORIZED UNDER THIS LICENSE OR COPYRIGHT LAW + IS PROHIBITED. + + BY EXERCISING ANY RIGHTS TO THE WORK PROVIDED HERE, YOU ACCEPT AND + AGREE TO BE BOUND BY THE TERMS OF THIS LICENSE. TO THE EXTENT THIS + LICENSE MAY BE CONSIDERED TO BE A CONTRACT, THE LICENSOR GRANTS YOU + THE RIGHTS CONTAINED HERE IN CONSIDERATION OF YOUR ACCEPTANCE OF + SUCH TERMS AND CONDITIONS. + + 1. Definitions a. "Adaptation" means a work based upon the Work, or + upon the Work and other pre-existing works, such as a translation, + adaptation, derivative work, arrangement of music or other + alterations of a literary or artistic work, or phonogram or + performance and includes cinematographic adaptations or any other + form in which the Work may be recast, transformed, or adapted + including in any form recognizably derived from the original, + except that a work that constitutes a Collection will not be + considered an Adaptation for the purpose of this License. For the + avoidance of doubt, where the Work is a musical work, performance + or phonogram, the synchronization of the Work in timed-relation + with a moving image ("synching") will be considered an Adaptation + for the purpose of this License. b. "Collection" means a + collection of literary or artistic works, such as encyclopedias + and anthologies, or performances, phonograms or broadcasts, or + other works or subject matter other than works listed in Section + 1(f) below, which, by reason of the selection and arrangement of + their contents, constitute intellectual creations, in which the + Work is included in its entirety in unmodified form along with one + or more other contributions, each constituting separate and + independent works in themselves, which together are assembled into + a collective whole. A work that constitutes a Collection will not + be considered an Adaptation (as defined above) for the purposes of + this License. c. "Distribute" means to make available to the + public the original and copies of the Work or Adaptation, as + appropriate, through sale or other transfer of ownership. + d. "Licensor" means the individual, individuals, entity or + entities that offer(s) the Work under the terms of this License. + e. "Original Author" means, in the case of a literary or artistic + work, the individual, individuals, entity or entities who created + the Work or if no individual or entity can be identified, the + publisher; and in addition (i) in the case of a performance the + actors, singers, musicians, dancers, and other persons who act, + sing, deliver, declaim, play in, interpret or otherwise perform + literary or artistic works or expressions of folklore; (ii) in the + case of a phonogram the producer being the person or legal entity + who first fixes the sounds of a performance or other sounds; and, + (iii) in the case of broadcasts, the organization that transmits + the broadcast. f. "Work" means the literary and/or artistic work + offered under the terms of this License including without + limitation any production in the literary, scientific and artistic + domain, whatever may be the mode or form of its expression + including digital form, such as a book, pamphlet and other + writing; a lecture, address, sermon or other work of the same + nature; a dramatic or dramatico-musical work; a choreographic work + or entertainment in dumb show; a musical composition with or + without words; a cinematographic work to which are assimilated + works expressed by a process analogous to cinematography; a work + of drawing, painting, architecture, sculpture, engraving or + lithography; a photographic work to which are assimilated works + expressed by a process analogous to photography; a work of applied + art; an illustration, map, plan, sketch or three-dimensional work + relative to geography, topography, architecture or science; a + performance; a broadcast; a phonogram; a compilation of data to + the extent it is protected as a copyrightable work; or a work + performed by a variety or circus performer to the extent it is not + otherwise considered a literary or artistic work. g. "You" means + an individual or entity exercising rights under this License who + has not previously violated the terms of this License with respect + to the Work, or who has received express permission from the + Licensor to exercise rights under this License despite a previous + violation. h. "Publicly Perform" means to perform public + recitations of the Work and to communicate to the public those + public recitations, by any means or process, including by wire or + wireless means or public digital performances; to make available + to the public Works in such a way that members of the public may + access these Works from a place and at a place individually chosen + by them; to perform the Work to the public by any means or process + and the communication to the public of the performances of the + Work, including by public digital performance; to broadcast and + rebroadcast the Work by any means including signs, sounds or + images. i. "Reproduce" means to make copies of the Work by any + means including without limitation by sound or visual recordings + and the right of fixation and reproducing fixations of the Work, + including storage of a protected performance or phonogram in + digital form or other electronic medium. + + 2. Fair Dealing Rights. Nothing in this License is intended to + reduce, limit, or restrict any uses free from copyright or rights + arising from limitations or exceptions that are provided for in + connection with the copyright protection under copyright law or + other applicable laws. + + 3. License Grant. Subject to the terms and conditions of this + License, Licensor hereby grants You a worldwide, royalty-free, + non-exclusive, perpetual (for the duration of the applicable + copyright) license to exercise the rights in the Work as stated + below: a. to Reproduce the Work, to incorporate the Work into one + or more Collections, and to Reproduce the Work as incorporated in + the Collections; b. to create and Reproduce Adaptations provided + that any such Adaptation, including any translation in any medium, + takes reasonable steps to clearly label, demarcate or otherwise + identify that changes were made to the original Work. For example, + a translation could be marked "The original work was translated + from English to Spanish," or a modification could indicate "The + original work has been modified."; c. to Distribute and Publicly + Perform the Work including as incorporated in Collections; and, + d. to Distribute and Publicly Perform Adaptations. e. For the + avoidance of doubt: i. Non-waivable Compulsory License Schemes. In + those jurisdictions in which the right to collect royalties through + any statutory or compulsory licensing scheme cannot be waived, the + Licensor reserves the exclusive right to collect such royalties for + any exercise by You of the rights granted under this License; + ii. Waivable Compulsory License Schemes. In those jurisdictions in + which the right to collect royalties through any statutory or + compulsory licensing scheme can be waived, the Licensor waives the + exclusive right to collect such royalties for any exercise by You + of the rights granted under this License; and, iii. Voluntary + License Schemes. The Licensor waives the right to collect + royalties, whether individually or, in the event that the Licensor + is a member of a collecting society that administers voluntary + licensing schemes, via that society, from any exercise by You of + the rights granted under this License. + + The above rights may be exercised in all media and formats whether + now known or hereafter devised. The above rights include the right + to make such modifications as are technically necessary to exercise + the rights in other media and formats. Subject to Section 8(f), all + rights not expressly granted by Licensor are hereby reserved. + + 4. Restrictions. The license granted in Section 3 above is + expressly made subject to and limited by the following + restrictions: a. You may Distribute or Publicly Perform the Work + only under the terms of this License. You must include a copy of, + or the Uniform Resource Identifier (URI) for, this License with + every copy of the Work You Distribute or Publicly Perform. You may + not offer or impose any terms on the Work that restrict the terms + of this License or the ability of the recipient of the Work to + exercise the rights granted to that recipient under the terms of + the License. You may not sublicense the Work. You must keep intact + all notices that refer to this License and to the disclaimer of + warranties with every copy of the Work You Distribute or Publicly + Perform. When You Distribute or Publicly Perform the Work, You may + not impose any effective technological measures on the Work that + restrict the ability of a recipient of the Work from You to + exercise the rights granted to that recipient under the terms of + the License. This Section 4(a) applies to the Work as incorporated + in a Collection, but this does not require the Collection apart + from the Work itself to be made subject to the terms of this + License. If You create a Collection, upon notice from any Licensor + You must, to the extent practicable, remove from the Collection any + credit as required by Section 4(b), as requested. If You create an + Adaptation, upon notice from any Licensor You must, to the extent + practicable, remove from the Adaptation any credit as required by + Section 4(b), as requested. b. If You Distribute, or Publicly + Perform the Work or any Adaptations or Collections, You must, + unless a request has been made pursuant to Section 4(a), keep + intact all copyright notices for the Work and provide, reasonable + to the medium or means You are utilizing: (i) the name of the + Original Author (or pseudonym, if applicable) if supplied, and/or + if the Original Author and/or Licensor designate another party or + parties (e.g., a sponsor institute, publishing entity, journal) for + attribution ("Attribution Parties") in Licensor's copyright notice, + terms of service or by other reasonable means, the name of such + party or parties; (ii) the title of the Work if supplied; (iii) to + the extent reasonably practicable, the URI, if any, that Licensor + specifies to be associated with the Work, unless such URI does not + refer to the copyright notice or licensing information for the + Work; and (iv) , consistent with Section 3(b), in the case of an + Adaptation, a credit identifying the use of the Work in the + Adaptation (e.g., "French translation of the Work by Original + Author," or "Screenplay based on original Work by Original + Author"). The credit required by this Section 4 (b) may be + implemented in any reasonable manner; provided, however, that in + the case of a Adaptation or Collection, at a minimum such credit + will appear, if a credit for all contributing authors of the + Adaptation or Collection appears, then as part of these credits and + in a manner at least as prominent as the credits for the other + contributing authors. For the avoidance of doubt, You may only use + the credit required by this Section for the purpose of attribution + in the manner set out above and, by exercising Your rights under + this License, You may not implicitly or explicitly assert or imply + any connection with, sponsorship or endorsement by the Original + Author, Licensor and/or Attribution Parties, as appropriate, of You + or Your use of the Work, without the separate, express prior + written permission of the Original Author, Licensor and/or + Attribution Parties. c. Except as otherwise agreed in writing by + the Licensor or as may be otherwise permitted by applicable law, if + You Reproduce, Distribute or Publicly Perform the Work either by + itself or as part of any Adaptations or Collections, You must not + distort, mutilate, modify or take other derogatory action in + relation to the Work which would be prejudicial to the Original + Author's honor or reputation. Licensor agrees that in those + jurisdictions (e.g. Japan), in which any exercise of the right + granted in Section 3(b) of this License (the right to make + Adaptations) would be deemed to be a distortion, mutilation, + modification or other derogatory action prejudicial to the Original + Author's honor and reputation, the Licensor will waive or not + assert, as appropriate, this Section, to the fullest extent + permitted by the applicable national law, to enable You to + reasonably exercise Your right under Section 3(b) of this License + (right to make Adaptations) but not otherwise. + + 5. Representations, Warranties and Disclaimer + + UNLESS OTHERWISE MUTUALLY AGREED TO BY THE PARTIES IN WRITING, + LICENSOR OFFERS THE WORK AS-IS AND MAKES NO REPRESENTATIONS OR + WARRANTIES OF ANY KIND CONCERNING THE WORK, EXPRESS, IMPLIED, + STATUTORY OR OTHERWISE, INCLUDING, WITHOUT LIMITATION, WARRANTIES + OF TITLE, MERCHANTIBILITY, FITNESS FOR A PARTICULAR PURPOSE, + NONINFRINGEMENT, OR THE ABSENCE OF LATENT OR OTHER DEFECTS, + ACCURACY, OR THE PRESENCE OF ABSENCE OF ERRORS, WHETHER OR NOT + DISCOVERABLE. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OF + IMPLIED WARRANTIES, SO SUCH EXCLUSION MAY NOT APPLY TO YOU. + + 6. Limitation on Liability. EXCEPT TO THE EXTENT REQUIRED BY + APPLICABLE LAW, IN NO EVENT WILL LICENSOR BE LIABLE TO YOU ON ANY + LEGAL THEORY FOR ANY SPECIAL, INCIDENTAL, CONSEQUENTIAL, PUNITIVE + OR EXEMPLARY DAMAGES ARISING OUT OF THIS LICENSE OR THE USE OF THE + WORK, EVEN IF LICENSOR HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH + DAMAGES. + + 7. Termination a. This License and the rights granted hereunder + will terminate automatically upon any breach by You of the terms + of this License. Individuals or entities who have received + Adaptations or Collections from You under this License, however, + will not have their licenses terminated provided such individuals + or entities remain in full compliance with those + licenses. Sections 1, 2, 5, 6, 7, and 8 will survive any + termination of this License. b. Subject to the above terms and + conditions, the license granted here is perpetual (for the + duration of the applicable copyright in the Work). Notwithstanding + the above, Licensor reserves the right to release the Work under + different license terms or to stop distributing the Work at any + time; provided, however that any such election will not serve to + withdraw this License (or any other license that has been, or is + required to be, granted under the terms of this License), and this + License will continue in full force and effect unless terminated + as stated above. + + 8. Miscellaneous a. Each time You Distribute or Publicly Perform + the Work or a Collection, the Licensor offers to the recipient a + license to the Work on the same terms and conditions as the + license granted to You under this License. b. Each time You + Distribute or Publicly Perform an Adaptation, Licensor offers to + the recipient a license to the original Work on the same terms and + conditions as the license granted to You under this License. + c. If any provision of this License is invalid or unenforceable + under applicable law, it shall not affect the validity or + enforceability of the remainder of the terms of this License, and + without further action by the parties to this agreement, such + provision shall be reformed to the minimum extent necessary to + make such provision valid and enforceable. d. No term or + provision of this License shall be deemed waived and no breach + consented to unless such waiver or consent shall be in writing and + signed by the party to be charged with such waiver or consent. + e. This License constitutes the entire agreement between the + parties with respect to the Work licensed here. There are no + understandings, agreements or representations with respect to the + Work not specified here. Licensor shall not be bound by any + additional provisions that may appear in any communication from + You. This License may not be modified without the mutual written + agreement of the Licensor and You. f. The rights granted under, + and the subject matter referenced, in this License were drafted + utilizing the terminology of the Berne Convention for the + Protection of Literary and Artistic Works (as amended on September + 28, 1979), the Rome Convention of 1961, the WIPO Copyright Treaty + of 1996, the WIPO Performances and Phonograms Treaty of 1996 and + the Universal Copyright Convention (as revised on July 24, + 1971). These rights and subject matter take effect in the relevant + jurisdiction in which the License terms are sought to be enforced + according to the corresponding provisions of the implementation of + those treaty provisions in the applicable national law. If the + standard suite of rights granted under applicable copyright law + includes additional rights not granted under this License, such + additional rights are deemed to be included in the License; this + License is not intended to restrict the license of any rights + under applicable law. + +Creative Commons Notice + + Creative Commons is not a party to this License, and makes no + warranty whatsoever in connection with the Work. Creative Commons + will not be liable to You or any party on any legal theory for + any damages whatsoever, including without limitation any general, + special, incidental or consequential damages arising in + connection to this license. Notwithstanding the foregoing two (2) + sentences, if Creative Commons has expressly identified itself as + the Licensor hereunder, it shall have all rights and obligations + of Licensor. + + Except for the limited purpose of indicating to the public that + the Work is licensed under the CCPL, Creative Commons does not + authorize the use by either party of the trademark "Creative + Commons" or any related trademark or logo of Creative Commons + without the prior written consent of Creative Commons. Any + permitted use will be in compliance with Creative Commons' + then-current trademark usage guidelines, as may be published on + its website or otherwise made available upon request from time to + time. For the avoidance of doubt, this trademark restriction + does not form part of this License. + + Creative Commons may be contacted at http://creativecommons.org/ + + + -- end printout -- diff --git a/main/file.c b/main/file.c index c89cee97c402974f64f1924a9971da6dc432ff02..c66742f72e83c25ed65d202f0f9b9778ae5866d5 100644 --- a/main/file.c +++ b/main/file.c @@ -557,10 +557,7 @@ static int fileexists_test(const char *filename, const char *fmt, const char *la /*! * \brief helper routine to locate a file with a given format * and language preference. - * Try preflang, preflang with stripped '_' suffix, or NULL. - * In the standard asterisk, language goes just before the last component. - * In an alternative configuration, the language should be a prefix - * to the actual filename. + * Try preflang, preflang with stripped '_' suffices, or NULL. * * The last parameter(s) point to a buffer of sufficient size, * which on success is filled with the matching filename. @@ -569,36 +566,35 @@ static int fileexists_core(const char *filename, const char *fmt, const char *pr char *buf, int buflen) { int res = -1; - char *lang = NULL; + char *lang; if (buf == NULL) { return -1; } /* We try languages in the following order: - * preflang (may include dialect) + * preflang (may include dialect and style codes) * lang (preflang without dialect - if any) * <none> * default (unless the same as preflang or lang without dialect) */ - /* Try preferred language */ - if (!ast_strlen_zero(preflang)) { - /* try the preflang exactly as it was requested */ - if ((res = fileexists_test(filename, fmt, preflang, buf, buflen)) > 0) { + lang = ast_strdupa(preflang); + + /* Try preferred language, including removing any style or dialect codes */ + while (!ast_strlen_zero(lang)) { + char *end; + + if ((res = fileexists_test(filename, fmt, lang, buf, buflen)) > 0) { return res; - } else { - /* try without a dialect */ - char *postfix = NULL; - postfix = lang = ast_strdupa(preflang); - - strsep(&postfix, "_"); - if (postfix) { - if ((res = fileexists_test(filename, fmt, lang, buf, buflen)) > 0) { - return res; - } - } } + + if ((end = strrchr(lang, '_')) != NULL) { + *end = '\0'; + continue; + } + + break; } /* Try without any language */