updated 不在内部提供模式包,对外暴露模式设置接口

This commit is contained in:
PASSER-BY 2021-11-24 01:16:35 +08:00
parent e7315578b9
commit 542a03577b
8 changed files with 358 additions and 2772 deletions

2632
dist/relationship.js vendored

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

View File

@ -5,8 +5,8 @@ const rename = require("gulp-rename");
gulp.task('mini', () => (
gulp.src('script/relationship.js')
.pipe(gulp.dest('dist/'))
.pipe(uglify()) //uglify
.pipe(uglify())
.pipe(rename("relationship.min.js"))
.pipe(gulp.dest('dist/'))
));

View File

@ -32,12 +32,12 @@
"glob-parent": ">=5.1.2"
},
"scripts": {
"test": "node tests/test.js",
"test": "node test/index.js",
"build": "gulp mini && npm run test"
},
"dependencies": {},
"homepage": "https://github.com/mumuy/relationship#readme",
"directories": {
"test": "tests"
"test": "test"
}
}

View File

@ -31,25 +31,50 @@ var relationship = require("relationship.js");
## 二、使用
使用很简单,只有一个 API 方法 `relationship(options)`.
1. 内部属性:获取当前数据量 `relationship.dataCount`.
2. 内部方法:用户自定义模式 `relationship.setMode(sign,data)`.
代码示例:
```js
var options = {text:'儿子的爸爸的妈妈',sex:1};
relationship(options);
relationship.setMode('northern',{
'm,f':['姥爷'],
'm,m':['姥姥']
});
```
另外,参数`options`结构为:
3. 通用方法: 唯一的计算方法 `relationship(options)`.
参数`options`结构为:
```js
var options = {
text:'', //输入文本
target:'', //针对对象:空表示自己
sex:-1, //自己的性别0女性,1男性
text:'', //输入文本(称谓的汉字表达,称谓间用‘的’字分割)
target:'', //针对对象:空表示自己
sex:-1, //自己的性别0女性,1男性
type:'default', //转换类型:'default'算称谓,'chain'算关系
reverse:false //称呼方式true对方称呼我,false我称呼对方
mode:'default' //模式选择,可由用户自定义
};
```
代码示例:
```js
// 如:我应该叫外婆的哥哥什么?
relationship({text:'妈妈的妈妈的哥哥'});
// 如:七舅姥爷应该叫我什么?
relationship({text:'七舅姥爷','reverse':true,'sex':1});
// 如:舅公和我是什么关系?
relationship({text:'舅公',sex:0,type:'chain'});
// 如:舅妈如何称呼外婆?
relationship({text:'外婆',target:'舅妈',sex:1});
```
## 三、开发 & 贡献
@ -69,11 +94,13 @@ npm test
## 四、关于分歧
一些称呼存在南北方或地区差异,容易引起歧义,并不保证和你所处地区的称谓习惯一致。本程序主要以现代生活常见的理解为主。
一些称呼存在南北方或地区差异,容易引起歧义,并不保证和你所处地区的称谓习惯一致。本程序默认以现代生活常见的理解为主。例如:
* 媳妇:在古代或者当今北方地区指儿子的妻子,这里指自己的妻子。
* 大爷:北方指父亲的哥哥,这里指爷爷的哥哥
* 太太:一些地方指年长的妇人,这里指自己的妻子
针对不同地区的使用,你可以通过上述所说的自定义模式实现。
## 五、其他
他们都在用:

264
script/index.js Normal file
View File

@ -0,0 +1,264 @@
// 获取数量
document.getElementById('count').innerText = relationship.dataCount;
// 自定义模式
relationship.setMode('cantonese',{
'f':['阿爸'],
'f,f':['阿爷'],
'f,f,f':['太公'],
'f,f,m':['太婆'],
'f,m':['阿嫲'],
'f,m,f':['太外公'],
'f,m,m':['太外婆'],
'f,ob':['大伯'],
'f,ob,w':['伯娘'],
'f,lb':['阿叔'],
'f,lb,w':['阿婶'],
'0,f,xb,d,s':['堂姨甥'],
'1,f,xb,d,s':['堂外甥'],
'0,f,xb,d,d':['堂姨甥女'],
'1,f,xb,d,d':['堂外甥女'],
'f,os':['姑妈'],
'f,ls':['姑姐'],
'f,xs,h':['姑丈'],
'0,f,xs,d,s':['姑表姨甥'],
'1,f,xs,d,s':['姑表外甥'],
'0,f,xs,d,d':['姑表姨甥女'],
'1,f,xs,d,d':['姑表外甥女'],
'm':['阿妈','老母'],
'm,f':['阿公'],
'm,f,f':['外太公'],
'm,f,m':['外太婆'],
'm,m':['阿婆'],
'm,m,f':['外太外公'],
'm,m,m':['外太外婆'],
'm,ob':['舅父'],
'm,lb':['舅仔'],
'm,xb,w':['舅母'],
'0,m,xb,d,s':['舅表姨甥'],
'1,m,xb,d,s':['舅表外甥'],
'0,m,xb,d,d':['舅表姨甥女'],
'1,m,xb,d,d':['舅表外甥女'],
'm,os':['姨妈'],
'm,ls':['姨仔'],
'm,xs,h':['姨丈'],
'0,m,xb,d,s':['姨姨甥'],
'1,m,xb,d,s':['姨外甥'],
'0,m,xb,d,d':['姨姨甥女'],
'1,m,xb,d,d':['姨外甥女'],
'ob':['阿哥'],
'ob,w':['阿嫂'],
'lb':['阿弟','细佬'],
'lb,w':['弟妇'],
'xb,s':['侄'],
'xb,d':['侄女'],
'os':['阿姐'],
'os,w':['姐夫'],
'ls':['阿妹'],
'ls,w':['妹夫'],
'0,xs,s':['姨甥'],
'1,xs,s':['外甥'],
'0,xs,d':['姨甥女'],
'1,xs,d':['外甥女'],
's':['仔'],
's,w':['新妇'],
's,s':['孙'],
's,s,w':['孙新妇'],
's,s,s':['息仔'],
's,s,d':['息女'],
's,d':['孙女'],
's,d,h':['孙女婿'],
's,d,s':['外息仔'],
's,d,d':['外息女'],
'd':['女'],
'd,s':['外孙'],
'd,s,w':['外孙新妇'],
'd,s,s':['外息仔'],
'd,s,d':['外息女'],
'd,d':['外孙女'],
'd,d,h':['外孙女婿'],
'd,d,s':['外息仔'],
'd,d,d':['外息女'],
});
// 标签页
(function(){
var $module = document.querySelector('.mod-panel');
var $items = $module.querySelectorAll('li');
var $panels = $module.querySelectorAll('.c-panel');
for(var i=0;i<$items.length;i++){
(function(i){
$items[i].addEventListener('click',function(){
for(var j=0;j<$panels.length;j++){
$items[j].className = i==j?'active':'';
$panels[j].style.display = i==j?'block':'none';
}
});
})(i);
}
})();
// 通过关系找称呼
(function(){
var $module = document.querySelector('.mod-panel');
var $panel = $module.querySelector('.c-panel:nth-child(1)');
var $radio = $panel.querySelectorAll('input[type="radio"]');
var $mode = $panel.querySelectorAll('input[name="mode"]');
var $sex = $panel.querySelectorAll('input[name="sex"]');
var $reverse = $panel.querySelectorAll('input[name="reverse"]');
var $small_btns = $panel.querySelectorAll('.btn-small');
var $input = $panel.querySelector('textarea[name="input"]');
var $result = $panel.querySelector('textarea[name="result"]');
var toggleSex = function(sex){
if(sex){ //男女判断
$small_btns[2].disabled=true;
$small_btns[3].disabled=false;
}else{
$small_btns[2].disabled=false;
$small_btns[3].disabled=true;
}
}
var count = function(){
var value = $input.value.trim();
if(value){
var sex = $sex[0].checked?1:0;
var mode = $mode[0].checked?$mode[0].value:$mode[1].value;
var reverse = !$reverse[0].checked;
var result = relationship({text:value,sex:sex,reverse:reverse,mode:mode});
$result.value = '';
if(result.length){
$result.value = result.join('\n');
}else{
$result.value = '貌似他/她跟你不是很熟哦!';
}
}else{
$result.value = '';
}
};
var bindChange = function(){
var value = $input.value.trim();
var result = relationship({text:value,type:'chain'});
if(result.length){
var name = result[0].split('的').pop();
if(!name){
toggleSex($sex[0].checked);
}else{
toggleSex('爸爸,老公,儿子,哥哥,弟弟,兄弟'.indexOf(name)>-1);
}
}
};
for(var i=0;i<$small_btns.length;i++){
$small_btns[i].onclick = function(){
var value = $input.value.trim();
var name = this.getAttribute('data-value');
if(value){
$input.value= value+'的'+name;
}else{
$input.value= name;
}
toggleSex('爸爸,老公,儿子,哥哥,弟弟,兄弟'.indexOf(name)>-1);
}
}
for(var i=0;i<$radio.length;i++){
$radio[i].onchange=function(){
toggleSex($sex[0].checked);
if($result.value){
count();
}
}
}
var hander = null;
$input.addEventListener('paste',function(){
hander&&clearTimeout(bindChange,250);
hander = setTimeout(bindChange,250);
});
$input.addEventListener('input',function(){
hander&&clearTimeout(bindChange,250);
hander = setTimeout(bindChange,250);
});
$panel.querySelector('.btn-orange').addEventListener('click',function(){
var value = $input.value.trim();
var index = value.lastIndexOf('的');
index = Math.max(0,index);
var search = value.substr(0,index);
$input.value = search;
$result.value = '';
var name = search.split('的').pop();
if(!name){
toggleSex($sex[0].checked);
}else{
toggleSex('爸爸,老公,儿子,哥哥,弟弟'.indexOf(name)>-1);
}
});
$panel.querySelector('.btn-red').addEventListener('click',function(){
$result.value = $input.value = '';
toggleSex($sex[0].checked);
});
$panel.querySelector('.btn-green').addEventListener('click',count);
toggleSex($sex[0].checked);
})();
// 通过称呼找关系
(function(){
var $module = document.querySelector('.mod-panel');
var $panel = $module.querySelector('.c-panel:nth-child(2)');
var $radio = $panel.querySelectorAll('input[type="radio"]');
var $input = $panel.querySelector('input[name="input"]');
var $result = $panel.querySelector('textarea[name="result"]');
var count = function(){
var value = $input.value.trim();
if(value){
var result = relationship({text:value,type:'chain'});
if(result.length){
$result.value = result.join('\n');
}else{
$result.value = '貌似他/她跟你不是很熟哦!';
}
}else{
$result.value = '';
}
};
$panel.querySelector('.btn-red').onclick = function(){
$result.value = $input.value = '';
};
$panel.querySelector('.btn-green').onclick = count;
})();
// 任意两者间称呼
(function(){
var $module = document.querySelector('.mod-panel');
var $panel = $module.querySelector('.c-panel:nth-child(3)');
var $radio = $panel.querySelectorAll('input[type="radio"]');
var $reverse = $panel.querySelectorAll('input[name="reverse2"]');
var $person = $panel.querySelector('input[name="person"]');
var $target = $panel.querySelector('input[name="target"]');
var $result = $panel.querySelector('textarea[name="result"]');
var count = function(){
var person = $person.value.trim();
var target = $target.value.trim();
if(person){
var reverse = !$reverse[1].checked;
var result = relationship({text:person,reverse:reverse,target:target});
if(result.length){
$result.value = result.join('\n');
}else{
$result.value = '他们貌似不是很熟哦!';
}
}else{
$result.value = '';
}
};
for(var i=0;i<$radio.length;i++){
$radio[i].onchange=function(){
if($result.value){
count();
}
}
}
$panel.querySelector('.btn-red').onclick = function(){
$result.value = $person.value = $target.value = '';
};
$panel.querySelector('.btn-green').onclick = count;
})();

View File

@ -187,7 +187,7 @@
//语法说明:
//【关系】f:父,m:母,h:夫,w:妻,s:子,d:女,xb:兄弟,ob:兄,lb:弟,xs:姐妹,os:姐,ls:妹
//【修饰符】 1:男性,0:女性,&o:年长,&l:年幼,#:隔断,[a|b]:并列
var _data = {
var _map = {
'':['自己','我','本人','在下'],
//并称
'[f,f|f,m|m,f|m,m]':['祖辈','祖父母'],
@ -202,10 +202,10 @@
'[s|d]':['子女','儿女','小孩','孩子','孩儿','宝宝','娃'],
'[s,s|s,d|d,s|d,d]':['孙辈'],
// 本家
'f':['爸爸','父亲','老爸','爸','父','爹','爹爹','爹地','爹啲','老爹','大大','老爷子'],
'f':['爸爸','父亲','老爸','阿爸','老窦','爸','父','爹','爹爹','爹地','爹啲','老爹','大大','老爷子'],
// 爷爷
'f,f':['爷爷','祖父','奶爷','阿公','老爷'],
'f,f,f':['曾祖父','曾祖','太爷','太爷爷','祖公','祖奶爷','太老爷'],
'f,f':['爷爷','祖父','奶爷','阿爷','阿','吖爷','老爷'],
'f,f,f':['曾祖父','曾祖','太公','太爷','太爷爷','祖公','祖奶爷','太老爷'],
'f,f,f,f':['高祖父','老太奶爷','老太爷','祖太爷','祖太爷爷','祖太公','高王父'],
'f,f,f,f,f':['天祖父','高祖'],
'f,f,f,f,f,f':['烈祖父','烈祖'],
@ -380,7 +380,7 @@
'f,f,f,xs,d,s&l,w':['姑表姑表叔母'],
'f,f,f,xs,d,d':['姑表姑表姑母'],
'f,f,f,xs,d,d,h':['姑表姑表姑父'],
'f,f,m':['曾祖母','太奶奶','祖婆','祖奶奶'],
'f,f,m':['曾祖母','太奶奶','太婆','祖婆','祖奶奶'],
'f,f,m,f':['高外祖父','老太姥爷','祖太姥爷','祖太公','高王父'],
'f,f,m,m':['高外祖母','老太姥姥','祖太姥姥','祖太姥娘','祖太婆','高王母'],
// 舅表*
@ -528,8 +528,8 @@
'f,f,xs,d,d,d':['堂姑表表甥女','姑表姑表甥女'],
'f,f,xs,d,d,d,h':['堂姑表表甥婿','姑表姑表甥婿'],
// 奶奶
'f,m':['奶奶','祖母','嫲嫲'],
'f,m,f':['曾外祖父','太姥爷'],
'f,m':['奶奶','祖母','阿嫲','阿嬷','嫲嫲','吖麻'],
'f,m,f':['曾外祖父','太外公','太姥爷'],
'f,m,f,f':['曾外曾祖父','祖太爷','祖太爷爷','祖太公','高王父'],
'f,m,f,m':['曾外曾祖母','祖太太','祖太奶奶','祖太婆','高王母'],
// 从父*
@ -576,7 +576,7 @@
'f,m,f,xs,d,s&l,w':['姑表姨表叔母'],
'f,m,f,xs,d,d':['姑表姨表姑母'],
'f,m,f,xs,d,d,h':['姑表姨表姑父'],
'f,m,m':['曾外祖母','太姥姥'],
'f,m,m':['曾外祖母','太外婆','太姥姥'],
'f,m,m,f':['曾外曾外祖父','祖太姥爷','祖太公','高王父'],
'f,m,m,m':['曾外曾外祖母','祖太姥姥','祖太姥娘','祖太婆','高王母'],
// 舅表*
@ -708,10 +708,10 @@
'f,m,xs,d,d,d':['从母姑表甥女'],
'f,m,xs,d,d,d,h':['从母姑表甥婿'],
// 从父
'f,ob':['伯父','伯伯','阿伯','大爹','大爸','x伯'],
'f,ob,w':['伯母','伯妈','大娘','大妈','x妈'],
'f,lb':['叔叔','叔父','叔爸','叔爹','仲父','小叔','小爹','小爸','幺爸','x叔','叔'],
'f,lb,w':['婶婶','婶母','婶娘','婶爹','婶妈','小婶','小婶娘','婶子','婶儿','家婶','叔母','叔妈','叔娘','季母','小娘','小妈','幺婶','x婶','婶'],
'f,ob':['伯父','伯伯','阿伯','大伯','大爹','大爸','x伯'],
'f,ob,w':['伯母','伯妈','伯娘','大娘','大妈','x妈'],
'f,lb':['叔叔','叔父','叔爸','叔爹','阿叔','仲父','小叔','小爹','小爸','幺爸','x叔','叔'],
'f,lb,w':['婶婶','婶母','婶娘','婶爹','阿婶','婶妈','小婶','小婶娘','婶子','婶儿','家婶','叔母','叔妈','叔娘','季母','小娘','小妈','幺婶','x婶','婶'],
'f,xb,w,f':['叔眷外祖父','叔眷王父','叔眷毑父','叔眷姥爷','眷姥爷'],
'f,xb,w,m':['叔眷外祖女','叔眷王母','叔眷毑母','叔眷姥姥','眷姥姥'],
'f,xb,w,xb':['叔眷舅父','眷舅父'],
@ -796,7 +796,7 @@
'f,xb,d,d,d,h':['堂甥外孙婿','从父甥外孙婿'],
// 姑表
'f,os':['姑母','大姑妈'],
'f,ls':['姑姐','小姑妈'],
'f,ls':['姑姐','小姑妈','姑仔'],
'f,xs':['姑妈','姑姑','姑娘','姑','x姑妈'],
'f,xs,h':['姑丈','姑父','姑爸','姑夫','x姑丈','x姑父'],
'f,xs,h,f':['姑姻祖父','姑姻王父','姑姻爷爷','姻爷爷'],
@ -864,9 +864,9 @@
'f,xs,d,d,d':['姑表甥外孙女','表甥外孙女','姑表甥外孙','表甥外孙'],
'f,xs,d,d,d,h':['姑表甥外孙婿','表甥外孙婿'],
// 外家
'm':['妈妈','母亲','老妈','老妈子','妈','母','娘','娘亲','妈咪'],
'm':['妈妈','母亲','阿妈','老母','老妈','老妈子','妈','母','娘','娘亲','妈咪'],
// 外公
'm,f':['外公','外祖父','外王父','客公','外爷','毑父'],
'm,f':['外公','外祖父','外王父','姥爷','阿公','客公','外爷','毑父'],
'm,f,f':['外曾祖父','曾外祖父','外太祖父','外曾王父','外太公','外太爷爷','太外祖父'],
'm,f,f,f':['外高祖父','高外祖父','祖太爷','祖太爷爷','祖太公','高王父'],
'm,f,f,m':['外高祖母','高外祖母','祖太太','祖太奶奶','祖太婆','高王母'],
@ -1038,8 +1038,8 @@
'm,f,xs,d,d,d':['姑表姨表甥女'],
'm,f,xs,d,d,d,h':['姑表姨表甥婿'],
// 外婆
'm,m':['外婆','外祖母','外王母','客婆','毑母'],
'm,m,f':['外曾外祖父','外太姥爷'],
'm,m':['外婆','外祖母','外王母','阿婆','姥姥','客婆','毑母'],
'm,m,f':['外曾外祖父','外太外公','外太姥爷'],
'm,m,f,f':['外曾外曾祖父','祖太爷','祖太爷爷','祖太公','高王父'],
'm,m,f,m':['外曾外曾祖母','祖太太','祖太奶奶','祖太婆','高王母'],
// 从父*
@ -1078,7 +1078,7 @@
'm,m,f,xs,d,s,w':['姑表姨表舅母'],
'm,m,f,xs,d,d':['姑表姨表姨母'],
'm,m,f,xs,d,d,h':['姑表姨表姨父'],
'm,m,m':['外曾外祖母','外太姥姥'],
'm,m,m':['外曾外祖母','外太外婆','外太姥姥'],
'm,m,m,f':['外曾外曾外祖父','祖太姥爷','祖太公','高王父'],
'm,m,m,m':['外曾外曾外祖母','祖太姥姥','祖太姥娘','祖太婆','高王母'],
// 舅表*
@ -1270,14 +1270,14 @@
'm,xb,d,d,s,w':['舅表甥外孙妇','表甥外孙妇'],
'm,xb,d,d,d':['舅表甥外孙女','表甥外孙女','舅表甥外孙','表甥外孙'],
'm,xb,d,d,d,h':['舅表甥外孙婿','表甥外孙婿'],
'm,ob':['大舅'],
'm,ob':['大舅','舅父'],
'm,ob,w':['大舅妈'],
'm,lb':['小舅','舅父仔'],
'm,lb':['小舅','舅仔','舅父仔'],
'm,lb,w':['小舅妈'],
// 从母
'm,os':['大姨','大姨妈'],
'm,os':['大姨','大姨妈','姨妈'],
'm,os,h':['大姨父','大姨丈'],
'm,ls':['小姨','小姨妈'],
'm,ls':['小姨','小姨妈','姨仔'],
'm,ls,h':['小姨父','小姨丈'],
'm,xs':['姨妈','姨母','姨姨','姨娘','阿姨','姨','x姨','x姨妈'],
'm,xs,h':['姨丈','姨父','姨爸','姨爹','姨婿','姨郎','x姨丈','x姨父'],
@ -1637,9 +1637,9 @@
'w,xs,d,d':['内甥外孙女','姨甥外孙女'],
'w,xs,d,d,h':['内甥外孙婿','姨甥外孙婿'],
// 兄弟
'ob':['哥哥','哥','兄','老哥','兄长','胞哥','大哥','x哥'],
'ob,w':['嫂子','嫂','嫂嫂','兄嫂','大嫂','x嫂'],
'lb':['弟弟','弟','胞弟','老弟','x弟'],
'ob':['哥哥','哥','兄','老哥','兄长','阿哥','大佬','吖哥','胞哥','大哥','x哥'],
'ob,w':['嫂子','嫂','嫂嫂','兄嫂','大嫂','阿嫂','x嫂'],
'lb':['弟弟','弟','胞弟','老弟','阿弟','细佬','x弟'],
'lb,w':['弟妹','弟媳','弟媳妇','弟妇','x弟妹'],
'xb':['兄弟'],
'xb,w,f':['兄弟眷父'],
@ -1734,7 +1734,7 @@
'1,xb,w,xs,s':['叔眷姨男'],
'0,xb,w,xs,d':['舅眷姨女'],
'1,xb,w,xs,d':['叔眷姨女'],
'xb,s':['侄子','侄男','侄男儿','侄儿','阿侄'],
'xb,s':['侄子','侄男','侄男儿','侄儿','阿侄','侄'],
'xb,s,w':['侄媳妇','侄妇'],
'xb,s,w,f&o':['侄眷兄'],
'xb,s,w,f&l':['侄眷弟'],
@ -1795,9 +1795,9 @@
'xb,d,d,d,s':['侄外曾外曾外孙'],
'xb,d,d,d,d':['侄外曾外曾外孙女'],
// 姐妹
'os':['姐姐','姐','阿姊','胞姐','大姐','x姐'],
'os':['姐姐','姐','阿姊','胞姐','大姐','阿姐','家姐','吖姐','x姐'],
'os,h':['姐夫','姊夫','姊丈','姊婿','大姐夫','x姐夫'],
'ls':['妹妹','妹','胞妹','老妹','x妹'],
'ls':['妹妹','妹','胞妹','老妹','阿妹','细妹','吖妹','x妹'],
'ls,h':['妹夫','妹丈','妹婿','x妹夫'],
'xs':['姐妹'],
'xs,h,f':['姊妹姻父'],
@ -1953,17 +1953,17 @@
'xs,d,d,d,s':['甥外曾外曾外孙'],
'xs,d,d,d,d':['甥外曾外曾外孙女'],
//自家
's':['儿子','男儿','儿','x儿子'],
's':['儿子','男儿','儿','仔','阿仔','仔仔','x儿子'],
's,w':['儿媳','儿媳妇','新妇'],
's,s':['孙子','孙男','孙儿','x孙子'],
's,s,w':['孙媳妇','孙媳','孙妇'],
's,s,w':['孙媳妇','孙媳','孙妇','孙新妇'],
's,s,w,f':['孙眷男'],
's,s,w,m':['孙眷女'],
's,s,w,xb':['孙眷孙男','姻家再侄男','姻家再侄'],
's,s,w,xb,w':['孙眷孙妇'],
's,s,w,xs':['孙眷孙女','姻家再侄女','姻家再侄'],
's,s,w,xs,h':['孙眷孙婿'],
's,s,s':['曾孙','曾孙男','重孙'],
's,s,s':['曾孙','曾孙男','重孙','息仔'],
's,s,s,w':['曾孙妇'],
's,s,s,s':['玄孙','元孙','膀孙'],
's,s,s,s,w':['玄孙媳妇'],
@ -2008,7 +2008,7 @@
's,s,s,d,s,w':['来外孙媳妇'],
's,s,s,d,d':['来外孙女'],
's,s,s,d,d,h':['来外孙女婿'],
's,s,d':['曾孙女'],
's,s,d':['曾孙女','息女'],
's,s,d,h':['曾孙女婿'],
's,s,d,s':['玄外孙'],
's,s,d,s,w':['玄外孙媳妇'],
@ -2034,10 +2034,10 @@
's,d,d,s,w':['曾外曾外孙媳妇'],
's,d,d,d':['曾外曾外孙女'],
's,d,d,d,h':['曾外曾外孙女婿'],
'd':['女儿','千金','闺女','掌上明珠','乖囡','囡囡','姑娘','x女儿'],
'd':['女儿','千金','闺女','掌上明珠','乖囡','囡囡','姑娘','女','阿女','女女','x女儿'],
'd,h':['女婿','姑爷','女婿子','女婿儿','儿婿'],
'd,s':['外孙'],
'd,s,w':['外孙媳妇','外孙妇'],
'd,s,w':['外孙媳妇','外孙妇','外孙新妇'],
'd,s,s':['外曾孙','重外孙'],
'd,s,s,w':['外曾孙媳妇','外曾孙妇'],
'd,s,s,s':['外玄孙'],
@ -2193,89 +2193,9 @@
'd,h,xs,d,h':['女姻外孙婿','息姻外孙婿'],
};
var _language = {};
_language['cantonese'] = {
'f':['阿爸','老窦'],
'f,f':['阿爷','吖爷'],
'f,f,f':['太公'],
'f,f,m':['太婆'],
'f,m':['阿嫲','阿嬷','吖麻'],
'f,m,f':['太外公'],
'f,m,m':['太外婆'],
'f,ob':['大伯'],
'f,ob,w':['伯娘'],
'f,lb':['阿叔'],
'f,lb,w':['阿婶'],
'0,f,xb,d,s':['堂姨甥'],
'1,f,xb,d,s':['堂外甥'],
'0,f,xb,d,d':['堂姨甥女'],
'1,f,xb,d,d':['堂外甥女'],
'f,os':['姑妈'],
'f,ls':['姑姐','姑仔'],
'f,xs,h':['姑丈'],
'0,f,xs,d,s':['姑表姨甥'],
'1,f,xs,d,s':['姑表外甥'],
'0,f,xs,d,d':['姑表姨甥女'],
'1,f,xs,d,d':['姑表外甥女'],
'm':['阿妈','老母'],
'm,f':['阿公'],
'm,f,f':['外太公'],
'm,f,m':['外太婆'],
'm,m':['阿婆'],
'm,m,f':['外太外公'],
'm,m,m':['外太外婆'],
'm,ob':['舅父'],
'm,lb':['舅仔'],
'm,xb,w':['舅母'],
'0,m,xb,d,s':['舅表姨甥'],
'1,m,xb,d,s':['舅表外甥'],
'0,m,xb,d,d':['舅表姨甥女'],
'1,m,xb,d,d':['舅表外甥女'],
'm,os':['姨妈'],
'm,ls':['姨仔'],
'm,xs,h':['姨丈'],
'0,m,xb,d,s':['姨姨甥'],
'1,m,xb,d,s':['姨外甥'],
'0,m,xb,d,d':['姨姨甥女'],
'1,m,xb,d,d':['姨外甥女'],
'ob':['阿哥','大佬','吖哥'],
'ob,w':['阿嫂'],
'lb':['阿弟','细佬'],
'lb,w':['弟妇'],
'xb,s':['侄'],
'xb,d':['侄女'],
'os':['阿姐','家姐','吖姐'],
'os,w':['姐夫'],
'ls':['阿妹','细妹','吖妹'],
'ls,w':['妹夫'],
'0,xs,s':['姨甥'],
'1,xs,s':['外甥'],
'0,xs,d':['姨甥女'],
'1,xs,d':['外甥女'],
's':['仔','阿仔','仔仔'],
's,w':['新妇'],
's,s':['孙'],
's,s,w':['孙新妇'],
's,s,s':['息仔'],
's,s,d':['息女'],
's,d':['孙女'],
's,d,h':['孙女婿'],
's,d,s':['外息仔'],
's,d,d':['外息女'],
'd':['女','阿女','女女'],
'd,s':['外孙'],
'd,s,w':['外孙新妇'],
'd,s,s':['外息仔'],
'd,s,d':['外息女'],
'd,d':['外孙女'],
'd,d,h':['外孙女婿'],
'd,d,s':['外息仔'],
'd,d,d':['外息女'],
};
_language['northern'] = {
'm,f':['姥爷'],
'm,m':['姥姥'],
};
// 模式
var _data = Object.assign({},_map);
var _mode = {};
// 数组去重
var unique = function(arr) {
@ -2563,18 +2483,18 @@
sex:-1,
type:'default', // 'chain'表示关系链
reverse:false, // true表示反向
language:'default', // 'cantonese'表示粤语地区
mode:'default', // 'cantonese'表示粤语地区
},parameter);
var sex = options.sex;
for(var lang in _language){
if(options.language==lang){
for(var key in _language[lang]){
_data[key] = _language[lang][key].concat(_data[key]||[]);
for(var lang in _mode){
if(options.mode==lang){
for(var key in _mode[lang]){
_data[key] = _mode[lang][key].concat(_map[key]||[]);
}
}else{
for(var key in _language[lang]){
if(_data[key]){
_data[key] = _data[key].concat(_language[lang][key]);
for(var key in _mode[lang]){
if(_map[key]){
_data[key] = _map[key].concat(_mode[lang][key]);
}
}
}
@ -2628,5 +2548,12 @@
for(var i in _data){
relationship.dataCount++;
}
// 设置语言模式
relationship.setMode = function(sign,data){
if(typeof _mode[sign]=='undefined'){
_mode[sign] = {};
}
_mode[sign] = Object.assign(_mode[sign],data);
};
return relationship;
});