Function legacyNameAlgorithm
has a Cognitive Complexity of 486 (exceeds 5 allowed). Consider refactoring. Open
public function legacyNameAlgorithm(string $path, Individual $person1 = null, Individual $person2 = null): string
{
// The path does not include the starting person. In some languages, the
// translation for a man’s (relative) is different from a woman’s (relative),
// due to inflection.
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Method legacyNameAlgorithm
has 1554 lines of code (exceeds 25 allowed). Consider refactoring. Open
public function legacyNameAlgorithm(string $path, Individual $person1 = null, Individual $person2 = null): string
{
// The path does not include the starting person. In some languages, the
// translation for a man’s (relative) is different from a woman’s (relative),
// due to inflection.
File RelationshipService.php
has 1909 lines of code (exceeds 250 allowed). Consider refactoring. Open
<?php
/**
* webtrees: online genealogy
* Copyright (C) 2023 webtrees development team
Function getCloseRelationship
has a Cognitive Complexity of 70 (exceeds 5 allowed). Consider refactoring. Open
private function getCloseRelationship(Individual $individual1, Individual $individual2, int $maxlength = 4): array
{
if ($individual1 === $individual2) {
return [$individual1];
}
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Method legacyCousinName
has 106 lines of code (exceeds 25 allowed). Consider refactoring. Open
private static function legacyCousinName(int $n, string $sex): string
{
if ($sex === 'M') {
switch ($n) {
case 1:
Method getCloseRelationship
has 71 lines of code (exceeds 25 allowed). Consider refactoring. Open
private function getCloseRelationship(Individual $individual1, Individual $individual2, int $maxlength = 4): array
{
if ($individual1 === $individual2) {
return [$individual1];
}
Method legacyCousinName2
has 46 lines of code (exceeds 25 allowed). Consider refactoring. Open
private static function legacyCousinName2(int $n, string $sex, string $relation): string
{
if ($sex === 'M') {
switch ($n) {
case 1:
Function matchRelationships
has a Cognitive Complexity of 10 (exceeds 5 allowed). Consider refactoring. Open
protected function matchRelationships(array $nodes, array $pattern, array $relationships): array
{
$count = count($pattern);
// Look for the longest matchable series of components
- Read upRead up
Cognitive Complexity
Cognitive Complexity is a measure of how difficult a unit of code is to intuitively understand. Unlike Cyclomatic Complexity, which determines how difficult your code will be to test, Cognitive Complexity tells you how difficult your code will be to read and comprehend.
A method's cognitive complexity is based on a few simple rules:
- Code is not considered more complex when it uses shorthand that the language provides for collapsing multiple statements into one
- Code is considered more complex for each "break in the linear flow of the code"
- Code is considered more complex when "flow breaking structures are nested"
Further reading
Avoid deeply nested control flow statements. Open
switch ($event->tag()) {
case 'FAM:ANUL':
case 'FAM:DIV':
return I18N::translate('ex-husband');
case 'FAM:MARR':
Avoid deeply nested control flow statements. Open
if ($first === 'bro' && $sex1 === 'M') {
return I18N::translateContext('(a man’s) brother’s great ×(%s-1) grandson', 'great ×%s nephew', I18N::number($down - 1));
}
Avoid deeply nested control flow statements. Open
if ($first === 'sis' && $sex1 === 'M') {
return I18N::translateContext('(a man’s) sister’s great ×(%s-1) granddaughter', 'great ×%s niece', I18N::number($down - 3));
}
Avoid deeply nested control flow statements. Open
if ($first === 'bro' && $sex1 === 'M') {
return I18N::translateContext('(a man’s) brother’s great ×(%s-1) grandson', 'great ×%s nephew', I18N::number($down - 0));
}
Avoid deeply nested control flow statements. Open
if ($first === 'sis' && $sex1 === 'M') {
return I18N::translateContext('(a man’s) sister’s great ×(%s-1) grandson', 'great ×%s nephew', I18N::number($down - 0));
}
Avoid deeply nested control flow statements. Open
if ($first === 'bro' && $sex1 === 'M') {
return I18N::translateContext('(a man’s) brother’s great ×(%s-1) granddaughter', 'great ×%s niece', I18N::number($down - 1));
}
Avoid deeply nested control flow statements. Open
switch ($event->tag()) {
case 'FAM:ANUL':
case 'FAM:DIV':
return I18N::translate('ex-wife');
case 'FAM:MARR':
Avoid deeply nested control flow statements. Open
switch ($event->tag()) {
case 'FAM:ANUL':
case 'FAM:DIV':
return I18N::translate('ex-spouse');
case 'FAM:MARR':
Avoid deeply nested control flow statements. Open
if ($first === 'bro' && $sex1 === 'M') {
return I18N::translateContext('(a man’s) brother’s great ×(%s-1) granddaughter', 'great ×%s niece', I18N::number($down - 3));
}
Avoid deeply nested control flow statements. Open
if ($first === 'sis' && $sex1 === 'M') {
return I18N::translateContext('(a man’s) sister’s great ×(%s-1) granddaughter', 'great ×%s niece', I18N::number($down - 1));
}
Avoid deeply nested control flow statements. Open
if ($bef_last === 'fat') {
return I18N::translateContext('great ×(%s-1) grandfather’s brother', 'great ×%s uncle', I18N::number($up - 2));
}
Avoid deeply nested control flow statements. Open
if ($first === 'sis' && $sex1 === 'M') {
return I18N::translateContext('(a man’s) sister’s great ×(%s-1) grandson', 'great ×%s nephew', I18N::number($down - 1));
}
Avoid deeply nested control flow statements. Open
if ($first === 'bro' && $sex1 === 'M') {
return I18N::translateContext('(a man’s) brother’s great ×(%s-1) granddaughter', 'great ×%s niece', I18N::number($down - 3));
}
Avoid deeply nested control flow statements. Open
if ($first === 'sis' && $sex1 === 'M') {
return I18N::translateContext('(a man’s) sister’s great ×(%s-1) granddaughter', 'great ×%s niece', I18N::number($down - 3));
}
Avoid deeply nested control flow statements. Open
if ($first === 'sis' && $sex1 === 'M') {
return I18N::translateContext('(a man’s) sister’s great ×(%s-1) grandson', 'great ×%s nephew', I18N::number($down - 3));
}
Avoid deeply nested control flow statements. Open
if ($first === 'bro' && $sex1 === 'M') {
return I18N::translateContext('(a man’s) brother’s great ×(%s-1) grandson', 'great ×%s nephew', I18N::number($down - 3));
}
Avoid deeply nested control flow statements. Open
if ($bef_last === 'mot') {
return I18N::translateContext('great ×(%s-1) grandmother’s brother', 'great ×%s uncle', I18N::number($up - 2));
}
Avoid too many return
statements within this method. Open
return I18N::translate('fiancée');
Avoid too many return
statements within this method. Open
return I18N::translate('son');
Avoid too many return
statements within this method. Open
return I18N::translate('daughter');
Avoid too many return
statements within this method. Open
return I18N::translateContext('daughter’s son', 'grandson');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s child', 'half-sibling');
Avoid too many return
statements within this method. Open
return I18N::translate('younger sibling');
Avoid too many return
statements within this method. Open
return I18N::translate('ex-husband');
Avoid too many return
statements within this method. Open
return I18N::translate('fiancé');
Avoid too many return
statements within this method. Open
return I18N::translate('sister');
Avoid too many return
statements within this method. Open
return I18N::translateContext('brother’s daughter', 'niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s daughter', 'half-sister');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s parent', 'paternal grandparent');
Avoid too many return
statements within this method. Open
return I18N::translateContext('husband’s father', 'father-in-law');
Avoid too many return
statements within this method. Open
return I18N::translate('elder sister');
Avoid too many return
statements within this method. Open
return I18N::translateContext('brother’s child', 'nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('brother’s son', 'nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('daughter’s child', 'grandchild');
Avoid too many return
statements within this method. Open
return I18N::translate('twin sister');
Avoid too many return
statements within this method. Open
return I18N::translateContext('child’s spouse', 'son/daughter-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('husband’s mother', 'mother-in-law');
Avoid too many return
statements within this method. Open
return $new_path;
Avoid too many return
statements within this method. Open
return I18N::translate('younger brother');
Avoid too many return
statements within this method. Open
return I18N::translateContext('child’s husband', 'son-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('daughter’s husband', 'son-in-law');
Avoid too many return
statements within this method. Open
return I18N::translate('partner');
Avoid too many return
statements within this method. Open
return I18N::translate('younger sister');
Avoid too many return
statements within this method. Open
return I18N::translate('child');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s brother', 'uncle');
Avoid too many return
statements within this method. Open
return I18N::translate('wife');
Avoid too many return
statements within this method. Open
return I18N::translateContext('child’s son', 'grandson');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s mother', 'paternal grandmother');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s sister', 'aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('husband’s daughter', 'step-daughter');
Avoid too many return
statements within this method. Open
return I18N::translate('spouse');
Avoid too many return
statements within this method. Open
return I18N::translateContext('child’s child', 'grandchild');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s father', 'paternal grandfather');
Avoid too many return
statements within this method. Open
return I18N::translate('fiancé(e)');
Avoid too many return
statements within this method. Open
return I18N::translate('sibling');
Avoid too many return
statements within this method. Open
return I18N::translate('elder sibling');
Avoid too many return
statements within this method. Open
return I18N::translateContext('brother’s wife', 'sister-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('husband’s brother', 'brother-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('MALE', 'partner');
Avoid too many return
statements within this method. Open
return I18N::translate('ex-wife');
Avoid too many return
statements within this method. Open
return I18N::translate('twin brother');
Avoid too many return
statements within this method. Open
return I18N::translate('elder brother');
Avoid too many return
statements within this method. Open
return I18N::translateContext('daughter’s daughter', 'granddaughter');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s son', 'half-brother');
Avoid too many return
statements within this method. Open
return I18N::translate('husband');
Avoid too many return
statements within this method. Open
return I18N::translate('ex-spouse');
Avoid too many return
statements within this method. Open
return I18N::translate('brother');
Avoid too many return
statements within this method. Open
return I18N::translateContext('child’s wife', 'daughter-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s sibling', 'aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s wife', 'step-mother');
Avoid too many return
statements within this method. Open
return [];
Avoid too many return
statements within this method. Open
return I18N::translateContext('FEMALE', 'partner');
Avoid too many return
statements within this method. Open
return I18N::translate('twin sibling');
Avoid too many return
statements within this method. Open
return I18N::translateContext('child’s daughter', 'granddaughter');
Avoid too many return
statements within this method. Open
return I18N::translateContext('husband’s child', 'step-child');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s son', 'half-brother');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s father', 'grandfather');
Avoid too many return
statements within this method. Open
return I18N::translateContext('wife’s child', 'step-child');
Avoid too many return
statements within this method. Open
return I18N::translateContext('brother’s son’s wife', 'niece-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s wife’s child', 'step-sibling');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s son', 'half-brother');
Avoid too many return
statements within this method. Open
return I18N::translateContext('spouse’s daughter', 'step-daughter');
Avoid too many return
statements within this method. Open
return I18N::translateContext('child’s daughter’s daughter', 'great-granddaughter');
Avoid too many return
statements within this method. Open
return I18N::translateContext('daughter’s son’s daughter', 'great-granddaughter');
Avoid too many return
statements within this method. Open
return I18N::translateContext('daughter’s son’s wife', 'grandson’s wife');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s father’s sister', 'great-aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s mother’s father', 'great-grandfather');
Avoid too many return
statements within this method. Open
return I18N::translateContext('husband’s brother’s child', 'nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s father’s brother', 'great-uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s father’s mother', 'great-grandmother');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s sibling', 'aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s sister', 'aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('sister’s child', 'nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('sister’s daughter', 'niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('wife’s mother', 'mother-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('wife’s sibling', 'brother/sister-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) brother’s child’s child', 'great-nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s son’s daughter', 'great-niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s brother’s wife', 'aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s mother’s mother', 'great-grandmother');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s sister’s husband', 'uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('sibling’s son', 'nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) brother’s child’s daughter', 'great-niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) brother’s daughter’s child', 'great-nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('brother’s wife’s brother', 'brother-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s parent’s father', 'great-grandfather');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s parent’s sibling', 'great-aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s sister’s child', 'first cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s wife’s daughter', 'step-sister');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s parent', 'maternal grandparent');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s daughter', 'half-sister');
Avoid too many return
statements within this method. Open
return I18N::translateContext('sibling’s daughter', 'niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('wife’s father', 'father-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s child’s daughter', 'great-niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('child’s daughter’s son', 'great-grandson');
Avoid too many return
statements within this method. Open
return I18N::translateContext('daughter’s daughter’s daughter', 'great-granddaughter');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s brother’s daughter', 'first cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('husband’s brother’s wife', 'sister-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('husband’s sibling’s child', 'nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('husband’s sister’s daughter', 'niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('husband’s son', 'step-son');
Avoid too many return
statements within this method. Open
return I18N::translateContext('spouse’s son', 'step-son');
Avoid too many return
statements within this method. Open
return I18N::translateContext('child’s son’s daughter', 'great-granddaughter');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s mother’s brother', 'great-uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s sister’s daughter', 'first cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s sibling', 'aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('sibling’s child', 'nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('sibling’s spouse', 'brother/sister-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('son’s wife', 'daughter-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('wife’s daughter', 'step-daughter');
Avoid too many return
statements within this method. Open
return I18N::translateContext('wife’s sister', 'sister-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) brother’s child’s son', 'great-nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s daughter’s daughter', 'great-niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s son’s child', 'great-nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('daughter’s child’s child', 'great-grandchild');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s father’s father', 'great-grandfather');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s brother’s son', 'first cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s brother', 'uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s child', 'half-sibling');
Avoid too many return
statements within this method. Open
return I18N::translateContext('son’s child', 'grandchild');
Avoid too many return
statements within this method. Open
return I18N::translateContext('sister’s son', 'nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('spouse’s father', 'father-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s daughter’s child', 'great-nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('brother’s wife’s sister', 'sister-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('child’s son’s child', 'great-grandchild');
Avoid too many return
statements within this method. Open
return I18N::translateContext('daughter’s husband’s mother', 'son-in-law’s mother');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s parent’s mother', 'great-grandmother');
Avoid too many return
statements within this method. Open
return I18N::translateContext('daughter’s child’s daughter', 'great-granddaughter');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s father’s sister', 'great-aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s brother', 'uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s child', 'half-sibling');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s spouse', 'step-parent');
Avoid too many return
statements within this method. Open
return I18N::translateContext('son’s daughter', 'granddaughter');
Avoid too many return
statements within this method. Open
return I18N::translateContext('son’s son', 'grandson');
Avoid too many return
statements within this method. Open
return I18N::translateContext('wife’s son', 'step-son');
Avoid too many return
statements within this method. Open
return I18N::translateContext('brother’s daughter’s husband', 'nephew-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s son’s son', 'great-nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('brother’s wife’s sibling', 'brother/sister-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('child’s child’s daughter', 'great-granddaughter');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s father’s brother', 'great-uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('husband’s sibling’s son', 'nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s father’s sibling', 'great-aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('husband’s sister', 'sister-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s sister', 'aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s parent', 'grandparent');
Avoid too many return
statements within this method. Open
return I18N::translateContext('spouse’s sister', 'sister-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s child’s son', 'great-nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) brother’s daughter’s son', 'great-nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('child’s son’s son', 'great-grandson');
Avoid too many return
statements within this method. Open
return I18N::translateContext('daughter’s child’s son', 'great-grandson');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s brother’s child', 'first cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s father’s sibling', 'great-aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s parent’s parent', 'great-grandparent');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s mother', 'grandmother');
Avoid too many return
statements within this method. Open
return I18N::translateContext('spouse’s brother', 'brother-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s daughter’s son', 'great-nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) brother’s son’s daughter', 'great-niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('child’s daughter’s child', 'great-grandchild');
Avoid too many return
statements within this method. Open
return I18N::translateContext('daughter’s son’s child', 'great-grandchild');
Avoid too many return
statements within this method. Open
return I18N::translateContext('daughter’s son’s son', 'great-grandson');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s mother’s parent', 'great-grandparent');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s parent’s brother', 'great-uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s parent’s sister', 'great-aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('husband’s sister’s husband', 'brother-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('husband’s brother’s son', 'nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s father’s parent', 'great-grandparent');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s husband', 'step-father');
Avoid too many return
statements within this method. Open
return I18N::translateContext('sister’s husband', 'brother-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('spouse’s child', 'step-child');
Avoid too many return
statements within this method. Open
return I18N::translateContext('daughter’s daughter’s child', 'great-grandchild');
Avoid too many return
statements within this method. Open
return I18N::translateContext('daughter’s daughter’s husband', 'granddaughter’s husband');
Avoid too many return
statements within this method. Open
return I18N::translateContext('daughter’s husband’s parent', 'son-in-law’s parent');
Avoid too many return
statements within this method. Open
return I18N::translateContext('husband’s brother’s daughter', 'niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('husband’s sister’s son', 'nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s brother’s child', 'first cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s brother’s daughter', 'first cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s brother’s wife', 'aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s daughter', 'half-sister');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s mother', 'maternal grandmother');
Avoid too many return
statements within this method. Open
return I18N::translateContext('spouse’s sibling', 'brother/sister-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s child’s child', 'great-nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('child’s son’s wife', 'grandson’s wife');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s brother’s son', 'first cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s mother’s sibling', 'great-aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s sister’s son', 'first cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s father', 'maternal grandfather');
Avoid too many return
statements within this method. Open
return I18N::translateContext('spouse’s parent', 'mother/father-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('wife’s brother', 'brother-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) brother’s son’s child', 'great-nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('child’s daughter’s husband', 'granddaughter’s husband');
Avoid too many return
statements within this method. Open
return I18N::translateContext('daughter’s daughter’s son', 'great-grandson');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s father’s mother', 'great-grandmother');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s father’s parent', 'great-grandparent');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s mother’s sister', 'great-aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s wife’s son', 'step-brother');
Avoid too many return
statements within this method. Open
return I18N::translateContext('husband’s sister’s child', 'nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s father’s father', 'great-grandfather');
Avoid too many return
statements within this method. Open
return I18N::translateContext('husband’s sibling', 'brother/sister-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('spouse’s mother', 'mother-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) brother’s daughter’s daughter', 'great-niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) brother’s son’s son', 'great-nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('child’s child’s child', 'great-grandchild');
Avoid too many return
statements within this method. Open
return I18N::translateContext('child’s child’s son', 'great-grandson');
Avoid too many return
statements within this method. Open
return I18N::translateContext('daughter’s husband’s father', 'son-in-law’s father');
Avoid too many return
statements within this method. Open
return I18N::translateContext('husband’s sibling’s daughter', 'niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s mother’s sibling', 'great-aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s mother’s sibling', 'great-aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s parent’s brother', 'great-uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) sister’s daughter’s son', 'great-nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('sister’s husband’s sister', 'sister-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s parent’s sister’s husband', 'great-uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s mother’s sister’s son', 'first cousin once removed ascending');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s mother’s brother’s daughter', 'first cousin once removed ascending');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s mother’s sister', 'great-aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s father’s mother', 'great-grandmother');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s father’s parent', 'great-grandparent');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s mother’s mother', 'great-grandmother');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s parent’s father', 'great-grandfather');
Avoid too many return
statements within this method. Open
return I18N::translateContext('sibling’s daughter’s daughter', 'great-niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s child’s child', 'great-nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('son’s son’s wife', 'grandson’s wife');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s father’s sibling’s spouse', 'great-aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s mother’s brother’s wife', 'great-aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s father’s sister’s son', 'first cousin once removed ascending');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s mother’s brother', 'great-uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s father’s brother', 'great-uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s father’s sibling', 'great-aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s spouse’s child', 'step-sibling');
Avoid too many return
statements within this method. Open
return I18N::translateContext('sibling’s child’s daughter', 'great-niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('sisters’s son’s wife', 'niece-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s parent’s brother’s wife', 'great-aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s mother’s sibling’s spouse', 'great-aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s mother’s sister’s child', 'first cousin once removed ascending');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s husband’s son', 'step-brother');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s sister’s child', 'first cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s sister’s husband', 'uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s father’s sister', 'great-aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s mother’s parent', 'great-grandparent');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s parent’s mother', 'great-grandmother');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s parent’s parent', 'great-grandparent');
Avoid too many return
statements within this method. Open
return I18N::translateContext('sibling’s son’s daughter', 'great-niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s child’s daughter', 'great-niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) sister’s daughter’s daughter', 'great-niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('sisters’s daughter’s husband', 'nephew-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('son’s child’s daughter', 'great-granddaughter');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s parent’s sibling', 'great-aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('son’s son’s daughter', 'great-granddaughter');
Avoid too many return
statements within this method. Open
return I18N::translateContext('son’s daughter’s son', 'great-grandson');
Avoid too many return
statements within this method. Open
return I18N::translateContext('wife’s sister’s child', 'nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('wife’s sibling’s daughter', 'niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('wife’s sibling’s son', 'nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('wife’s sister’s son', 'nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s father’s brother’s wife', 'great-aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s father’s sibling’s spouse', 'great-aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s mother’s brother’s son', 'first cousin once removed ascending');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s mother’s brother’s son', 'first cousin once removed ascending');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s mother’s brother’s child', 'first cousin once removed ascending');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s mother’s sister’s daughter', 'first cousin once removed ascending');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) sister’s child’s son', 'great-nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s daughter’s son', 'great-nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) sister’s son’s son', 'great-nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('son’s child’s son', 'great-grandson');
Avoid too many return
statements within this method. Open
return I18N::translateContext('wife’s sibling’s child', 'nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('wife’s brother’s child', 'nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s mother’s sister’s husband', 'great-uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s mother’s sister’s husband', 'great-uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s parent’s sibling’s spouse', 'great-aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s father’s sister’s son', 'first cousin once removed ascending');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s parent’s brother', 'great-uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s father’s sister’s husband', 'great-uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s father’s brother’s son', 'first cousin once removed ascending');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s father’s sister’s child', 'first cousin once removed ascending');
Avoid too many return
statements within this method. Open
return I18N::translateContext('sibling’s son’s child', 'great-nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('sibling’s son’s son', 'great-nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s daughter’s child', 'great-nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s son’s son', 'great-nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('son’s wife’s mother', 'daughter-in-law’s mother');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s parent’s sibling’s spouse', 'great-aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s father’s sister’s husband', 'great-uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s mother’s parent', 'great-grandparent');
Avoid too many return
statements within this method. Open
return I18N::translateContext('sibling’s daughter’s child', 'great-nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('sister’s husband’s sibling', 'brother/sister-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('son’s son’s child', 'great-grandchild');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s parent’s mother', 'great-grandmother');
Avoid too many return
statements within this method. Open
return I18N::translateContext('son’s wife’s parent', 'daughter-in-law’s parent');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s parent’s parent', 'great-grandparent');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s brother’s wife', 'aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('wife’s sister’s husband', 'brother-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('sibling’s child’s child', 'great-nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('wife’s brother’s daughter', 'niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) sister’s child’s child', 'great-nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s parent’s father', 'great-grandfather');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s mother’s sister’s husband', 'great-uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) sister’s son’s daughter', 'great-niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('wife’s sister’s daughter', 'niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s father’s brother’s daughter', 'first cousin once removed ascending');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s father’s sister’s husband', 'great-uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s parent’s brother’s wife', 'great-aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s parent’s sibling’s spouse', 'great-aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('sibling’s child’s son', 'great-nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s father’s brother’s wife', 'great-aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('son’s daughter’s husband', 'granddaughter’s husband');
Avoid too many return
statements within this method. Open
return I18N::translateContext('wife’s brother’s wife', 'sister-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s mother’s brother’s wife', 'great-aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s father’s brother’s daughter', 'first cousin once removed ascending');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s father’s brother’s child', 'first cousin once removed ascending');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s mother’s sister’s daughter', 'first cousin once removed ascending');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s father’s brother’s child', 'first cousin once removed ascending');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s mother’s father', 'great-grandfather');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s sister’s daughter', 'first cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s sister’s son', 'first cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s father’s father', 'great-grandfather');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s mother’s father', 'great-grandfather');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s sister’s husband', 'uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s spouse’s daughter', 'step-sister');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s spouse’s son', 'step-brother');
Avoid too many return
statements within this method. Open
return I18N::translateContext('sister’s husband’s brother', 'brother-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('son’s child’s child', 'great-grandchild');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s mother’s sibling’s spouse', 'great-aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s mother’s mother', 'great-grandmother');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s parent’s sister’s husband', 'great-uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s father’s sister’s daughter', 'first cousin once removed ascending');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s mother’s sister', 'great-aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s parent’s sister', 'great-aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('sibling’s daughter’s husband', 'nephew-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('son’s daughter’s child', 'great-grandchild');
Avoid too many return
statements within this method. Open
return I18N::translateContext('son’s son’s son', 'great-grandson');
Avoid too many return
statements within this method. Open
return I18N::translateContext('wife’s brother’s son', 'nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s husband’s child', 'step-sibling');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s husband’s daughter', 'step-sister');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s parent’s sister', 'great-aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('sibling’s daughter’s son', 'great-nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('sibling’s son’s wife', 'niece-in-law');
Avoid too many return
statements within this method. Open
return I18N::translateContext('son’s daughter’s daughter', 'great-granddaughter');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s father’s brother’s wife', 'great-aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s parent’s brother’s wife', 'great-aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s father’s sister’s daughter', 'first cousin once removed ascending');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s mother’s brother’s daughter', 'first cousin once removed ascending');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s parent’s sibling', 'great-aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s daughter’s daughter', 'great-niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s son’s child', 'great-nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s son’s daughter', 'great-niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('son’s wife’s father', 'daughter-in-law’s father');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s mother’s sibling’s spouse', 'great-aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('father’s father’s sister’s child', 'first cousin once removed ascending');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s father’s brother’s son', 'first cousin once removed ascending');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s mother’s brother’s child', 'first cousin once removed ascending');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s mother’s brother', 'great-uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) sister’s child’s daughter', 'great-niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s child’s son', 'great-nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) sister’s daughter’s child', 'great-nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) sister’s son’s child', 'great-nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s father’s sibling’s spouse', 'great-aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s mother’s brother’s wife', 'great-aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('parent’s parent’s sister’s husband', 'great-uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandmother’s brother’s grandson', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('great ×4 grandfather’s brother', 'great ×5 uncle');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s aunt/uncle', I18N::number($up + 1));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s great-granddaughter', 'great-great-niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) great ×4 nephew', 'great ×4 nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) great ×%s niece', 'great ×%s niece', I18N::number($down - 3));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) great ×%s nephew', 'great ×%s nephew', I18N::number($down - 1));
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandfather’s brother’s granddaughter', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×4 aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('great ×6 grandmother’s brother', 'great ×7 uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s great-great-grandson', 'great-great-great-nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) great ×4 nephew/niece', 'great ×4 nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s great ×4 granddaughter', 'great ×5 niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s great ×4 grandchild', 'great ×5 nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s great ×(%s-1) grandson', 'great ×%s nephew', I18N::number($down - 1));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×4 aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×6 aunt');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s aunt', I18N::number($up - 4));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s great-grandson', 'great-great-nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) great-great-nephew/niece', 'great-great-nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s great-great-great-grandson', 'great ×4 nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s great ×4 grandchild', 'great ×5 nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s great ×(%s-1) grandson', 'great ×%s nephew', I18N::number($down - 0));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s great ×(%s-1) granddaughter', 'great ×%s niece', I18N::number($down - 1));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) great ×%s nephew/niece', 'great ×%s nephew/niece', I18N::number($down - 1));
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandparent’s sibling’s grandson', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('great-great-great-grandparent’s brother', 'great ×4 uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('great ×6 grandparent’s brother', 'great ×7 uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandfather’s brother’s grandson', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandmother’s sister’s granddaughter', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s aunt/uncle', I18N::number($up - 4));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s uncle', I18N::number($up));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s great-great-granddaughter', 'great-great-great-niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s great-great-grandchild', 'great-great-great-nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) great ×5 nephew', 'great ×5 nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s great ×(%s-1) grandson', 'great ×%s nephew', I18N::number($down - 3));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) great ×%s nephew', 'great ×%s nephew', I18N::number($down - 3));
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandfather’s sibling’s grandson', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandparent’s sister’s grandson', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('great-grandfather’s brother', 'great-great-uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('great-great-grandmother’s brother', 'great-great-great-uncle');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×7 aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s uncle', I18N::number($up - 1));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s great ×4 grandson', 'great ×5 nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s great ×4 granddaughter', 'great ×5 niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) great ×%s niece', 'great ×%s niece', I18N::number($down - 1));
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandfather’s sister’s grandson', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandparent’s brother’s grandson', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('great-great-aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('great-great-grandparent’s brother', 'great-great-great-uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('great-great-great-grandfather’s brother', 'great ×4 uncle');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s uncle', I18N::number($up + 1));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s great-great-grandchild', 'great-great-great-nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) great ×%s nephew', 'great ×%s nephew', I18N::number($down - 0));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s great ×(%s-1) granddaughter', 'great ×%s niece', I18N::number($down - 3));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) great ×%s niece', 'great ×%s niece', I18N::number($down - 3));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s nephew', I18N::number($down - 3));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s nephew', I18N::number($down - 2));
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s mother’s sister’s son', 'first cousin once removed ascending');
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandfather’s sibling’s grandchild', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandmother’s sister’s grandson', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandmother’s sibling’s granddaughter', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s great-granddaughter', 'great-great-niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s great-great-great-grandchild', 'great ×4 nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s great ×(%s-1) grandchild', 'great ×%s nephew/niece', I18N::number($down - 3));
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandfather’s brother’s grandchild', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s aunt/uncle', I18N::number($up - 1));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) great ×5 niece', 'great ×5 niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s great ×(%s-1) grandchild', 'great ×%s nephew/niece', I18N::number($down - 1));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s nephew/niece', I18N::number($down - 3));
Avoid too many return
statements within this method. Open
return I18N::translateContext('mother’s mother’s sister’s child', 'first cousin once removed ascending');
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandmother’s brother’s grandchild', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandmother’s sister’s grandchild', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandparent’s brother’s grandchild', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('great-grandmother’s brother', 'great-great-uncle');
Avoid too many return
statements within this method. Open
return I18N::translate('great-great-aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('great-great-grandfather’s brother', 'great-great-great-uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('great ×4 grandmother’s brother', 'great ×5 uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('great ×6 grandfather’s brother', 'great ×7 uncle');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s aunt', I18N::number($up - 2));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s great-grandchild', 'great-great-nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s great-great-great-grandson', 'great ×4 nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) great ×5 nephew/niece', 'great ×5 nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s great ×(%s-1) granddaughter', 'great ×%s niece', I18N::number($down - 3));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s great ×(%s-1) grandchild', 'great ×%s nephew/niece', I18N::number($down - 3));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s great ×(%s-1) grandson', 'great ×%s nephew', I18N::number($down - 1));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s niece', I18N::number($down - 1));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s niece', I18N::number($down - 2));
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandfather’s sister’s granddaughter', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandfather’s sister’s grandchild', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandparent’s sibling’s granddaughter', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×6 aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×7 aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s great-great-grandson', 'great-great-great-nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s great-great-great-granddaughter', 'great ×4 niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s great ×(%s-1) grandson', 'great ×%s nephew', I18N::number($down - 0));
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandparent’s brother’s granddaughter', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandparent’s sibling’s grandchild', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('great-great-great-grandmother’s brother', 'great ×4 uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('great ×5 grandmother’s brother', 'great ×6 uncle');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s uncle', I18N::number($up - 4));
Avoid too many return
statements within this method. Open
return I18N::translateContext('great ×(%s-1) grandfather’s brother', 'great ×%s uncle', I18N::number($up - 2));
Avoid too many return
statements within this method. Open
return I18N::translateContext('great ×(%s-1) grandmother’s brother', 'great ×%s uncle', I18N::number($up - 2));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s uncle', I18N::number($up - 2));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s aunt', I18N::number($up));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s great-grandson', 'great-great-nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) great-great-great-nephew', 'great-great-great-nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s great ×4 grandson', 'great ×5 nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s great ×(%s-1) granddaughter', 'great ×%s niece', I18N::number($down - 3));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s great ×(%s-1) grandchild', 'great ×%s nephew/niece', I18N::number($down - 3));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) great ×%s nephew/niece', 'great ×%s nephew/niece', I18N::number($down - 3));
Avoid too many return
statements within this method. Open
return I18N::translateContext('great-grandparent’s brother', 'great-great-uncle');
Avoid too many return
statements within this method. Open
return I18N::translate('great-great-great-aunt');
Avoid too many return
statements within this method. Open
return I18N::translateContext('great ×4 grandparent’s brother', 'great ×5 uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('great ×(%s-1) grandparent’s brother', 'great ×%s uncle', I18N::number($up - 2));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s aunt/uncle', I18N::number($up - 2));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s aunt', I18N::number($up - 1));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s great-grandchild', 'great-great-nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) great-great-great-nephew/niece', 'great-great-great-nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s great-great-great-granddaughter', 'great ×4 niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) great ×4 niece', 'great ×4 niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s great ×(%s-1) grandson', 'great ×%s nephew', I18N::number($down - 3));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s nephew/niece', I18N::number($down - 1));
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandfather’s sibling’s granddaughter', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandmother’s brother’s granddaughter', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandparent’s sister’s granddaughter', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×5 aunt');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×5 aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s aunt', I18N::number($up + 1));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s aunt/uncle', I18N::number($up));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s great-great-great-grandchild', 'great ×4 nephew/niece');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s niece', I18N::number($down - 3));
Avoid too many return
statements within this method. Open
return I18N::translate('great-great-great-aunt/uncle');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s aunt', I18N::number($up - 2));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) great-great-niece', 'great-great-niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandmother’s sibling’s grandson', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandmother’s sibling’s grandchild', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('grandparent’s sister’s grandchild', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('great ×5 grandfather’s brother', 'great ×6 uncle');
Avoid too many return
statements within this method. Open
return I18N::translateContext('great ×5 grandparent’s brother', 'great ×6 uncle');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s aunt/uncle', I18N::number($up - 2));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) great-great-nephew', 'great-great-nephew');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s great-great-granddaughter', 'great-great-great-niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) great-great-great-niece', 'great-great-great-niece');
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s great ×(%s-1) granddaughter', 'great ×%s niece', I18N::number($down - 3));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s great ×(%s-1) grandchild', 'great ×%s nephew/niece', I18N::number($down - 3));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a woman’s) great ×%s nephew/niece', 'great ×%s nephew/niece', I18N::number($down - 3));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) brother’s great ×(%s-1) granddaughter', 'great ×%s niece', I18N::number($down - 1));
Avoid too many return
statements within this method. Open
return I18N::translateContext('(a man’s) sister’s great ×(%s-1) grandchild', 'great ×%s nephew/niece', I18N::number($down - 1));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s nephew', I18N::number($down - 1));
Avoid too many return
statements within this method. Open
return I18N::translate('great-great-grandparent');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandparent', I18N::number($up));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandfather', I18N::number($up - 1));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandfather', I18N::number($up - 2));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×6 grandchild');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandchild', I18N::number($up + 1));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s granddaughter', I18N::number($up));
Avoid too many return
statements within this method. Open
return self::legacyCousinName($up + $down - 3, $sex2);
Avoid too many return
statements within this method. Open
return I18N::translate('%s once removed ascending', self::legacyCousinName($cousin, $sex2));
Avoid too many return
statements within this method. Open
return I18N::translateContext('MALE', 'fifth cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('MALE', 'eleventh cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('MALE', 'thirteenth cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('FEMALE', 'tenth cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('fifteenth cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×5 grandmother');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×4 grandson');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×5 grandson');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×5 granddaughter');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×7 grandson');
Avoid too many return
statements within this method. Open
return $relationship;
Avoid too many return
statements within this method. Open
return I18N::translateContext('MALE', 'tenth cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('MALE', 'twelfth cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('FEMALE', 'third cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('FEMALE', 'sixth cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s nephew/niece', I18N::number($down - 2));
Avoid too many return
statements within this method. Open
return I18N::translate('great-great-great-grandparent');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×4 grandfather');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×7 grandparent');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandmother', I18N::number($up - 3));
Avoid too many return
statements within this method. Open
return I18N::translate('%s three times removed ascending', self::legacyCousinName($cousin, $sex2));
Avoid too many return
statements within this method. Open
return I18N::translateContext('FEMALE', 'thirteenth cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('second cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('seventh cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('FEMALE', 'first %s', $relation);
Avoid too many return
statements within this method. Open
return I18N::translateContext('FEMALE', 'fifth %s', $relation);
Avoid too many return
statements within this method. Open
return I18N::translate('%1$s × %2$s', I18N::number($n), $relation);
Avoid too many return
statements within this method. Open
return I18N::translate('great-great-great-grandmother');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×6 grandparent');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandparent', I18N::number($up - 3));
Avoid too many return
statements within this method. Open
return I18N::translate('great-great-granddaughter');
Avoid too many return
statements within this method. Open
return I18N::translate('great-great-great-grandchild');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×4 granddaughter');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×7 granddaughter');
Avoid too many return
statements within this method. Open
return I18N::translateContext('FEMALE', 'first cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('FEMALE', 'twelfth cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('first cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×6 grandson');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×6 granddaughter');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandchild', I18N::number($up - 2));
Avoid too many return
statements within this method. Open
return I18N::translateContext('FEMALE', 'fifth cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('fourth cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('fifth cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('eighth cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('FEMALE', 'fourth %s', $relation);
Avoid too many return
statements within this method. Open
return I18N::translate('great-great-great-grandfather');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×6 grandmother');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×7 grandfather');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandparent', I18N::number($up - 3));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s granddaughter', I18N::number($up - 2));
Avoid too many return
statements within this method. Open
return I18N::translate('great-great-grandfather');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×4 grandmother');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×7 grandmother');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandparent', I18N::number($up - 1));
Avoid too many return
statements within this method. Open
return self::legacyCousinName2($cousin + 1, $sex2, $this->legacyNameAlgorithm('bro' . $descent));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandfather', I18N::number($up - 3));
Avoid too many return
statements within this method. Open
return I18N::translate('%1$s %2$s times removed ascending', self::legacyCousinName($cousin, $sex2), I18N::number($removed));
Avoid too many return
statements within this method. Open
return I18N::translate('great-great-great-grandson');
Avoid too many return
statements within this method. Open
return I18N::translateContext('FEMALE', '%s × cousin', I18N::number($n));
Avoid too many return
statements within this method. Open
return I18N::translate('great-great-great-granddaughter');
Avoid too many return
statements within this method. Open
return I18N::translate('fourteenth cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandson', I18N::number($up - 3));
Avoid too many return
statements within this method. Open
return self::legacyCousinName($cousin, $sex2);
Avoid too many return
statements within this method. Open
return I18N::translateContext('MALE', 'sixth cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('FEMALE', 'second cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('FEMALE', 'seventh cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('third cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('tenth cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('MALE', '%1$s × %2$s', I18N::number($n), $relation);
Avoid too many return
statements within this method. Open
return I18N::translate('second %s', $relation);
Avoid too many return
statements within this method. Open
return I18N::translate('third %s', $relation);
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandfather', I18N::number($up));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandmother', I18N::number($up - 1));
Avoid too many return
statements within this method. Open
return I18N::translateContext('FEMALE', 'fourth cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('FEMALE', 'eleventh cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('%s × cousin', I18N::number($n));
Avoid too many return
statements within this method. Open
return I18N::translate('first %s', $relation);
Avoid too many return
statements within this method. Open
return I18N::translate('great ×5 grandparent');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandfather', I18N::number($up + 1));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandparent', I18N::number($up + 1));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×7 grandchild');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandson', I18N::number($up - 2));
Avoid too many return
statements within this method. Open
return I18N::translate('%1$s %2$s times removed descending', self::legacyCousinName($cousin, $sex2), I18N::number($removed));
Avoid too many return
statements within this method. Open
return I18N::translateContext('MALE', 'ninth cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('ninth cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('twelfth cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('thirteenth cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('MALE', 'fifth %s', $relation);
Avoid too many return
statements within this method. Open
return I18N::translateContext('FEMALE', 'third %s', $relation);
Avoid too many return
statements within this method. Open
return I18N::translate('great ×5 grandfather');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandmother', I18N::number($up - 3));
Avoid too many return
statements within this method. Open
return I18N::translate('great-great-grandson');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandchild', I18N::number($up - 3));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandson', I18N::number($up));
Avoid too many return
statements within this method. Open
return I18N::translate('%s once removed descending', self::legacyCousinName($cousin, $sex2));
Avoid too many return
statements within this method. Open
return I18N::translate('%s twice removed ascending', self::legacyCousinName($cousin, $sex2));
Avoid too many return
statements within this method. Open
return I18N::translate('fourth %s', $relation);
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandmother', I18N::number($up - 2));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×5 grandchild');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s granddaughter', I18N::number($up - 3));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandson', I18N::number($up + 1));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s granddaughter', I18N::number($up + 1));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandchild', I18N::number($up));
Avoid too many return
statements within this method. Open
return $relationshipsCache[$path];
Avoid too many return
statements within this method. Open
return I18N::translateContext('MALE', 'seventh cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('MALE', 'eighth cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('MALE', 'fourteenth cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('sixth cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('great-great-grandmother');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×4 grandparent');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandparent', I18N::number($up - 2));
Avoid too many return
statements within this method. Open
return self::legacyCousinName2($cousin + 1, $sex2, $this->legacyNameAlgorithm('sib' . $descent));
Avoid too many return
statements within this method. Open
return self::legacyCousinName2($cousin + 1, $sex2, $this->legacyNameAlgorithm('sib' . $descent));
Avoid too many return
statements within this method. Open
return I18N::translateContext('FEMALE', 'eighth cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('FEMALE', '%1$s × %2$s', I18N::number($n), $relation);
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandfather', I18N::number($up - 3));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×4 grandchild');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×6 grandfather');
Avoid too many return
statements within this method. Open
return I18N::translateContext('MALE', 'fifteenth cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('great-great-grandchild');
Avoid too many return
statements within this method. Open
return I18N::translateContext('FEMALE', 'fifteenth cousin');
Avoid too many return
statements within this method. Open
return self::legacyCousinName2($cousin + 1, $sex2, $this->legacyNameAlgorithm('sis' . $descent));
Avoid too many return
statements within this method. Open
return I18N::translateContext('FEMALE', 'ninth cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('eleventh cousin');
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandmother', I18N::number($up));
Avoid too many return
statements within this method. Open
return I18N::translate('great ×%s grandmother', I18N::number($up + 1));
Avoid too many return
statements within this method. Open
return self::legacyCousinName($up + $down + 2, $sex2);
Avoid too many return
statements within this method. Open
return self::legacyCousinName($cousin, $sex2);
Avoid too many return
statements within this method. Open
return I18N::translate('%s twice removed descending', self::legacyCousinName($cousin, $sex2));
Avoid too many return
statements within this method. Open
return I18N::translate('%s three times removed descending', self::legacyCousinName($cousin, $sex2));
Avoid too many return
statements within this method. Open
return I18N::translateContext('MALE', '%s × cousin', I18N::number($n));
Avoid too many return
statements within this method. Open
return I18N::translateContext('FEMALE', 'fourteenth cousin');
Avoid too many return
statements within this method. Open
return I18N::translateContext('FEMALE', 'second %s', $relation);
Avoid too many return
statements within this method. Open
return I18N::translate('fifth %s', $relation);
Similar blocks of code found in 3 locations. Consider refactoring. Open
case 'ko': // Source: Jeongwan Nam (jeongwann@gmail.com)
if ($sex2 === 'M') {
if ($first === 'bro' && $sex1 === 'M') {
return I18N::translateContext('(a man’s) brother’s great ×(%s-1) grandson', 'great ×%s nephew', I18N::number($down - 0));
}
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 367.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 3 locations. Consider refactoring. Open
case 'pl': // Source: Lukasz Wilenski
if ($sex2 === 'M') {
if ($first === 'bro' && $sex1 === 'M') {
return I18N::translateContext('(a man’s) brother’s great ×(%s-1) grandson', 'great ×%s nephew', I18N::number($down - 3));
}
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 367.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 3 locations. Consider refactoring. Open
case 'zh-Hant':
if ($sex2 === 'M') {
if ($first === 'bro' && $sex1 === 'M') {
return I18N::translateContext('(a man’s) brother’s great ×(%s-1) grandson', 'great ×%s nephew', I18N::number($down - 1));
}
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 367.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 2 locations. Consider refactoring. Open
if ($sex === 'F') {
switch ($n) {
case 1:
return I18N::translateContext('FEMALE', 'first cousin');
case 2:
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 293.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 2 locations. Consider refactoring. Open
if ($sex === 'M') {
switch ($n) {
case 1:
/* I18N: Note that for Italian and Polish, “N’th cousins” are different from English “N’th cousins”, and the software has already generated the correct “N” for your language. You only need to translate - you do not need to convert. For other languages, if your cousin rules are different from English, please contact the developers. */
return I18N::translateContext('MALE', 'first cousin');
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 293.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 4 locations. Consider refactoring. Open
case 5:
if ($sex2 === 'M') {
if ($first === 'bro' && $sex1 === 'M') {
return I18N::translateContext('(a man’s) brother’s great-great-grandson', 'great-great-great-nephew');
}
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 241.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 4 locations. Consider refactoring. Open
case 4:
if ($sex2 === 'M') {
if ($first === 'bro' && $sex1 === 'M') {
return I18N::translateContext('(a man’s) brother’s great-grandson', 'great-great-nephew');
}
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 241.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 4 locations. Consider refactoring. Open
case 7:
if ($sex2 === 'M') {
if ($first === 'bro' && $sex1 === 'M') {
return I18N::translateContext('(a man’s) brother’s great ×4 grandson', 'great ×5 nephew');
}
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 241.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 4 locations. Consider refactoring. Open
case 6:
if ($sex2 === 'M') {
if ($first === 'bro' && $sex1 === 'M') {
return I18N::translateContext('(a man’s) brother’s great-great-great-grandson', 'great ×4 nephew');
}
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 241.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 2 locations. Consider refactoring. Open
foreach ($indi->spouseFamilies(Auth::PRIV_HIDE) as $family) {
$visited[$family->xref()] = true;
foreach ($family->spouses(Auth::PRIV_HIDE) as $spouse) {
if (!isset($visited[$spouse->xref()])) {
$new_path = $path;
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 220.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 2 locations. Consider refactoring. Open
foreach ($indi->childFamilies(Auth::PRIV_HIDE) as $family) {
$visited[$family->xref()] = true;
foreach ($family->spouses(Auth::PRIV_HIDE) as $spouse) {
if (!isset($visited[$spouse->xref()])) {
$new_path = $path;
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 220.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 2 locations. Consider refactoring. Open
case 'hus':
if ($person1 instanceof Individual && $person2 instanceof Individual) {
// We had the linking family earlier, but lost it. Find it again.
foreach ($person1->spouseFamilies(Auth::PRIV_HIDE) as $family) {
if ($person2 === $family->spouse($person1)) {
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 176.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 2 locations. Consider refactoring. Open
case 'wif':
if ($person1 instanceof Individual && $person2 instanceof Individual) {
// We had the linking family earlier, but lost it. Find it again.
foreach ($person1->spouseFamilies(Auth::PRIV_HIDE) as $family) {
if ($person2 === $family->spouse($person1)) {
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 176.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 3 locations. Consider refactoring. Open
case 'sib':
if ($person1 && $person2) {
$dob1 = $person1->getBirthDate();
$dob2 = $person2->getBirthDate();
if ($dob1->isOK() && $dob2->isOK()) {
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 170.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 3 locations. Consider refactoring. Open
case 'sis':
if ($person1 && $person2) {
$dob1 = $person1->getBirthDate();
$dob2 = $person2->getBirthDate();
if ($dob1->isOK() && $dob2->isOK()) {
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 170.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 3 locations. Consider refactoring. Open
case 'bro':
if ($person1 && $person2) {
$dob1 = $person1->getBirthDate();
$dob2 = $person2->getBirthDate();
if ($dob1->isOK() && $dob2->isOK()) {
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 170.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 2 locations. Consider refactoring. Open
if ($sex === 'M') {
switch ($n) {
case 1:
/* I18N: A Spanish relationship name, such as third great-nephew */
return I18N::translateContext('MALE', 'first %s', $relation);
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 141.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 2 locations. Consider refactoring. Open
if ($sex === 'F') {
switch ($n) {
case 1:
/* I18N: A Spanish relationship name, such as third great-nephew */
return I18N::translateContext('FEMALE', 'first %s', $relation);
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 141.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 6 locations. Consider refactoring. Open
case 4:
if ($sex2 === 'M') {
if ($bef_last === 'fat') {
return I18N::translateContext('great-great-grandfather’s brother', 'great-great-great-uncle');
}
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 99.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 6 locations. Consider refactoring. Open
case 8:
if ($sex2 === 'M') {
if ($bef_last === 'fat') {
return I18N::translateContext('great ×6 grandfather’s brother', 'great ×7 uncle');
}
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 99.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 6 locations. Consider refactoring. Open
case 7:
if ($sex2 === 'M') {
if ($bef_last === 'fat') {
return I18N::translateContext('great ×5 grandfather’s brother', 'great ×6 uncle');
}
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 99.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 6 locations. Consider refactoring. Open
case 5:
if ($sex2 === 'M') {
if ($bef_last === 'fat') {
return I18N::translateContext('great-great-great-grandfather’s brother', 'great ×4 uncle');
}
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 99.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 6 locations. Consider refactoring. Open
case 3:
if ($sex2 === 'M') {
if ($bef_last === 'fat') {
return I18N::translateContext('great-grandfather’s brother', 'great-great-uncle');
}
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 99.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 6 locations. Consider refactoring. Open
case 6:
if ($sex2 === 'M') {
if ($bef_last === 'fat') {
return I18N::translateContext('great ×4 grandfather’s brother', 'great ×5 uncle');
}
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 99.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 8 locations. Consider refactoring. Open
case 'he': // Source: Meliza Amity
if ($sex2 === 'M') {
return I18N::translate('great ×%s nephew', I18N::number($down - 1));
}
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 94.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 8 locations. Consider refactoring. Open
case 'da': // Source: Patrick Sorensen
if ($sex2 === 'M') {
return I18N::translate('great ×%s grandson', I18N::number($up - 3));
}
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 94.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 8 locations. Consider refactoring. Open
case 'da': // Source: Patrick Sorensen
if ($sex2 === 'M') {
return I18N::translate('great ×%s grandfather', I18N::number($up - 3));
}
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 94.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 8 locations. Consider refactoring. Open
case 'da':
if ($sex2 === 'M') {
return I18N::translate('great ×%s uncle', I18N::number($up - 4));
}
- Read upRead up
Duplicated Code
Duplicated code can lead to software that is hard to understand and difficult to change. The Don't Repeat Yourself (DRY) principle states:
Every piece of knowledge must have a single, unambiguous, authoritative representation within a system.
When you violate DRY, bugs and maintenance problems are sure to follow. Duplicated code has a tendency to both continue to replicate and also to diverge (leaving bugs as two similar implementations differ in subtle ways).
Tuning
This issue has a mass of 94.
We set useful threshold defaults for the languages we support but you may want to adjust these settings based on your project guidelines.
The threshold configuration represents the minimum mass a code block must have to be analyzed for duplication. The lower the threshold, the more fine-grained the comparison.
If the engine is too easily reporting duplication, try raising the threshold. If you suspect that the engine isn't catching enough duplication, try lowering the threshold. The best setting tends to differ from language to language.
See codeclimate-duplication
's documentation for more information about tuning the mass threshold in your .codeclimate.yml
.
Refactorings
- Extract Method
- Extract Class
- Form Template Method
- Introduce Null Object
- Pull Up Method
- Pull Up Field
- Substitute Algorithm
Further Reading
- Don't Repeat Yourself on the C2 Wiki
- Duplicated Code on SourceMaking
- Refactoring: Improving the Design of Existing Code by Martin Fowler. Duplicated Code, p76
Similar blocks of code found in 8 locations. Consider refactoring. Open
case 'nb':
if ($sex2 === 'M') {
// I18N: if you need a different number for %s, contact the developers, as a code-change is required
return I18N::translate('great ×%s grandfather', I18N::number($up - 3));
}
- Read upRead up