<commit_before>package com.planet_ink.coffee_mud.Abilities.interfaces;
import com.planet_ink.coffee_mud.Abilities.StdAbility;
import com.planet_ink.coffee_mud.core.interfaces.*;
import com.planet_ink.coffee_mud.core.*;
import com.planet_ink.coffee_mud.core.collections.*;
import com.planet_ink.coffee_mud.Abilities.interfaces.*;
import com.planet_ink.coffee_mud.Areas.interfaces.*;
import com.planet_ink.coffee_mud.Behaviors.interfaces.*;
import com.planet_ink.coffee_mud.CharClasses.interfaces.*;
import com.planet_ink.coffee_mud.Commands.interfaces.*;
import com.planet_ink.coffee_mud.Common.interfaces.*;
import com.planet_ink.coffee_mud.Exits.interfaces.*;
import com.planet_ink.coffee_mud.Items.interfaces.*;
import com.planet_ink.coffee_mud.Libraries.interfaces.*;
import com.planet_ink.coffee_mud.Locales.interfaces.*;
import com.planet_ink.coffee_mud.MOBS.interfaces.*;
import com.planet_ink.coffee_mud.Races.interfaces.*;

import java.util.*;

/*
   Copyright 2002-2021 <NAME>

   Licensed 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.
*/

/**
 * A Language ability represents both the ability to understand one or more
 * spoken or written languages, and the ability to speak one or more spoken
 * languages.  A single ability usually represents a single language, but
 * may support multiple simultaneously.
 */
public interface Language extends Ability
{
	/**
	 * Returns the name of this language when it is in written form.
	 * This is usually the same as the spoken form.
	 * @return the name of this language when it is in written form.
	 */
	public String writtenName();

	/**
	 * Returns a list of the languages understood by this ability.
	 * Narrowly used to allow this language to translate others,
	 * including Common.
	 * @return vector of language ids supported (usually 1 element == ID())
	 */
	public Set<String> languagesSupported();

	/**
	 * Returns whether the given language is translated by this one.
	 * Does not use {@link Language.languaesSupported()}
	 * @param language the language to test
	 * @return true if this language translates (usually ID() == language)
	 */
	public boolean translatesLanguage(String language);

	/**
	 * Returns the understanding proficiency in the given supported language
	 * @param language the language to test for (usually ID())
	 * @return the proficiency of this ability in the language (0-100)<commit_msg>fixing javadocs<commit_after>package com.planet_ink.coffee_mud.Abilities.interfaces;
import com.planet_ink.coffee_mud.Abilities.StdAbility;
import com.planet_ink.coffee_mud.core.interfaces.*;
import com.planet_ink.coffee_mud.core.*;
import com.planet_ink.coffee_mud.core.collections.*;
import com.planet_ink.coffee_mud.Abilities.interfaces.*;
import com.planet_ink.coffee_mud.Areas.interfaces.*;
import com.planet_ink.coffee_mud.Behaviors.interfaces.*;
import com.planet_ink.coffee_mud.CharClasses.interfaces.*;
import com.planet_ink.coffee_mud.Commands.interfaces.*;
import com.planet_ink.coffee_mud.Common.interfaces.*;
import com.planet_ink.coffee_mud.Exits.interfaces.*;
import com.planet_ink.coffee_mud.Items.interfaces.*;
import com.planet_ink.coffee_mud.Libraries.interfaces.*;
import com.planet_ink.coffee_mud.Locales.interfaces.*;
import com.planet_ink.coffee_mud.MOBS.interfaces.*;
import com.planet_ink.coffee_mud.Races.interfaces.*;

import java.util.*;

/*
   Copyright 2002-2021 <NAME>

   Licensed 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.
*/

/**
 * A Language ability represents both the ability to understand one or more
 * spoken or written languages, and the ability to speak one or more spoken
 * languages.  A single ability usually represents a single language, but
 * may support multiple simultaneously.
 */
public interface Language extends Ability
{
	/**
	 * Returns the name of this language when it is in written form.
	 * This is usually the same as the spoken form.
	 * @return the name of this language when it is in written form.
	 */
	public String writtenName();

	/**
	 * Returns a list of the languages understood by this ability.
	 * Narrowly used to allow this language to translate others,
	 * including Common.
	 * @return vector of language ids supported (usually 1 element == ID())
	 */
	public Set<String> languagesSupported();

	/**
	 * Returns whether the given language is translated by this one.
	 * Does not use {@link Language.languagesSupported()}
	 * @param language the language to test
	 * @return true if this language translates (usually ID() == language)
	 */
	public boolean translatesLanguage(String language);

	/**
	 * Returns the understanding proficiency in the given supported language
	 * @param language the language to test for (usually ID())
	 * @return the proficiency of this ability in the language (0-100)
{'fraction_non_alphanumeric': 0.08607771388743683, 'fraction_numerical': 0.005924377069175815, 'mean_word_length': 4.415094339622642, 'pattern_counts': {'":': 0, '<': 7, '<?xml version=': 0, '>': 7, 'https://': 0, 'lorem ipsum': 0, 'www.': 2, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '2890207', 'n_tokens_mistral': 1721, 'n_tokens_neox': 1580, 'n_words': 586}